[hkl] 01/03: Imported Upstream version 4.99.99.1946

Frédéric-Emmanuel Picca picca at moszumanska.debian.org
Wed Jul 1 14:29:03 UTC 2015


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

picca pushed a commit to branch experimental
in repository hkl.

commit 2b1a22558638e78d17b9bcb270bf3e55291da55f
Author: Picca Frédéric-Emmanuel <picca at synchrotron-soleil.fr>
Date:   Tue Jun 30 14:49:18 2015 +0200

    Imported Upstream version 4.99.99.1946
---
 ChangeLog                                          |   84 ++
 Documentation/Makefile.in                          |  284 ++--
 Documentation/api/Makefile.in                      |  231 +--
 Documentation/api/html/annotation-glossary.html    |   59 +-
 Documentation/api/html/api-index-full.html         |  555 ++++----
 Documentation/api/html/ch01.html                   |   26 +-
 Documentation/api/html/deprecated-api-index.html   |   24 +-
 Documentation/api/html/hkl-array-size.html         |   57 +-
 Documentation/api/html/hkl-autodata.html           |  175 ++-
 Documentation/api/html/hkl-build-assert.html       |   66 +-
 Documentation/api/html/hkl-check-type.html         |   68 +-
 Documentation/api/html/hkl-compiler.html           |  145 +-
 Documentation/api/html/hkl-container-of.html       |   94 +-
 Documentation/api/html/hkl-darray.html             |  583 +++++---
 Documentation/api/html/hkl-hkl-axis-private.html   |   86 +-
 .../api/html/hkl-hkl-detector-private.html         |  172 ++-
 .../api/html/hkl-hkl-factory-private.html          |  124 +-
 .../api/html/hkl-hkl-geometry-private.html         |  911 ++++++++----
 .../api/html/hkl-hkl-interval-private.html         |  461 +++---
 .../api/html/hkl-hkl-lattice-private.html          |  221 ++-
 Documentation/api/html/hkl-hkl-macros-private.html |  178 ++-
 Documentation/api/html/hkl-hkl-matrix-private.html |  599 +++++---
 .../api/html/hkl-hkl-parameter-private.html        |  508 ++++---
 .../api/html/hkl-hkl-pseudoaxis-auto-private.html  |  303 ++--
 ...kl-hkl-pseudoaxis-common-eulerians-private.html |   98 +-
 .../hkl-hkl-pseudoaxis-common-hkl-private.html     |  250 ++--
 .../hkl-hkl-pseudoaxis-common-psi-private.html     |  118 +-
 .../html/hkl-hkl-pseudoaxis-common-q-private.html  |  108 +-
 .../api/html/hkl-hkl-pseudoaxis-private.html       |  500 ++++---
 .../api/html/hkl-hkl-quaternion-private.html       |  650 +++++----
 Documentation/api/html/hkl-hkl-sample-private.html |  241 +++-
 Documentation/api/html/hkl-hkl-source-private.html |  400 ++++--
 Documentation/api/html/hkl-hkl-type-builtins.html  |   93 +-
 Documentation/api/html/hkl-hkl-types.html          |  130 +-
 Documentation/api/html/hkl-hkl-unit-private.html   |  261 ++--
 Documentation/api/html/hkl-hkl-vector-private.html | 1501 ++++++++++++--------
 Documentation/api/html/hkl-hkl.html                |  592 +++++---
 Documentation/api/html/hkl-list.html               |  515 ++++---
 Documentation/api/html/hkl-noerr.html              |   94 +-
 Documentation/api/html/hkl-ptr-valid.html          |  239 +++-
 Documentation/api/html/hkl-str-debug.html          |  285 +++-
 Documentation/api/html/hkl-str.html                |  374 +++--
 Documentation/api/html/hkl.devhelp2                |  648 ++++-----
 Documentation/api/html/home.png                    |  Bin 654 -> 256 bytes
 Documentation/api/html/index.html                  |   10 +-
 Documentation/api/html/index.sgml                  |  687 +++++----
 Documentation/api/html/left-insensitive.png        |  Bin 0 -> 395 bytes
 Documentation/api/html/left.png                    |  Bin 459 -> 262 bytes
 Documentation/api/html/object-tree.html            |   25 +-
 Documentation/api/html/right-insensitive.png       |  Bin 0 -> 373 bytes
 Documentation/api/html/right.png                   |  Bin 472 -> 261 bytes
 Documentation/api/html/style.css                   |  418 ++++--
 Documentation/api/html/up-insensitive.png          |  Bin 0 -> 374 bytes
 Documentation/api/html/up.png                      |  Bin 406 -> 260 bytes
 Documentation/figures/Makefile.in                  |  104 +-
 Documentation/hkl.html                             |  580 ++++++--
 Documentation/hkl.org.in                           |   27 +-
 Documentation/sphinx/Makefile.in                   |  577 ++++++--
 INSTALL                                            |   12 +-
 Makefile.in                                        |  350 +++--
 aclocal.m4                                         |  709 +++++----
 config/compile                                     |  347 +++++
 config/config.guess                                |  346 ++---
 config/config.sub                                  |  113 +-
 config/depcomp                                     |  455 +++---
 config/install-sh                                  |   14 +-
 config/ltmain.sh                                   |    4 +-
 config/missing                                     |  414 ++----
 config/test-driver                                 |  139 ++
 configure                                          |  647 ++++++---
 data/Makefile.in                                   |  103 +-
 gtk-doc.make                                       |  101 +-
 gui/Makefile.in                                    |  213 ++-
 gui/hkl-gui-3d-gl.h                                |   26 +-
 gui/hkl-gui-macros.h                               |    2 +-
 gui/hkl-gui-pseudoaxes.h                           |    2 -
 gui/hkl-gui.h                                      |    4 -
 hkl/Makefile.in                                    |  322 +++--
 hkl/ccan/Makefile.in                               |  227 +--
 hkl/hkl-engine-e4c.c                               |   15 +-
 hkl/hkl-engine-e6c.c                               |   13 +-
 hkl/hkl-engine-k4c.c                               |   14 +-
 hkl/hkl-engine-k6c.c                               |   14 +-
 hkl/hkl-engine-soleil-sirius-turret.c              |   13 +-
 hkl/hkl-engine-soleil-sixs-med.c                   |   10 +-
 hkl/hkl-engine-template.c                          |   14 +-
 hkl/hkl-engine-zaxis.c                             |   13 +-
 hkl/hkl-geometry-private.h                         |    1 +
 hkl/hkl-interval.c                                 |    2 +-
 hkl/hkl-lattice.c                                  |    4 +-
 hkl/hkl-pseudoaxis-auto.c                          |   22 +-
 hkl/hkl-pseudoaxis-common-eulerians.c              |    2 +-
 hkl/hkl-pseudoaxis-common-hkl.c                    |    2 +-
 hkl/hkl-pseudoaxis-common-readonly-private.h       |   36 +-
 hkl/hkl-pseudoaxis-common-readonly.c               |  144 +-
 hkl/hkl-pseudoaxis-common-tth.c                    |   12 +-
 hkl/hkl-pseudoaxis-private.h                       |    2 +-
 hkl/hkl-pseudoaxis.c                               |   12 +-
 hkl/hkl-sample.c                                   |    4 +-
 hkl/hkl-type-builtins.c                            |  103 +-
 hkl/hkl-type-builtins.h                            |    1 -
 hkl/hkl-types.c                                    |    2 +-
 hkl3d/Makefile.in                                  |  204 ++-
 m4/gtk-doc.m4                                      |   51 +-
 m4/libtool.m4                                      |   24 +-
 tests/Makefile.in                                  |  315 ++--
 tests/bindings/Makefile.in                         |  570 ++++++--
 tests/bindings/python.py                           |    2 +-
 tests/hkl-pseudoaxis-t.c                           |    5 +-
 tests/tap/Makefile.in                              |  175 ++-
 110 files changed, 14052 insertions(+), 7838 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 508b3e6..a57a049 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,89 @@
 # Generated by Makefile. Do not edit.
 
+commit 026c105555c6ef9de9bb2ae816c8aa28d3c39012
+Author: Picca Frédéric-Emmanuel <picca at synchrotron-soleil.fr>
+Date:   Fri Jun 26 16:10:43 2015 +0200
+
+    indentation
+
+ gui/hkl-gui-3d-gl.h                          | 26 +++++++++++++-------------
+ gui/hkl-gui-pseudoaxes.h                     |  2 --
+ gui/hkl-gui.h                                |  4 ----
+ hkl/hkl-engine-k4c.c                         |  1 -
+ hkl/hkl-engine-template.c                    |  1 -
+ hkl/hkl-geometry-private.h                   |  1 +
+ hkl/hkl-interval.c                           |  2 +-
+ hkl/hkl-lattice.c                            |  4 ++--
+ hkl/hkl-pseudoaxis-auto.c                    | 22 +++++++++++-----------
+ hkl/hkl-pseudoaxis-common-eulerians.c        |  2 +-
+ hkl/hkl-pseudoaxis-common-hkl.c              |  2 +-
+ hkl/hkl-pseudoaxis-common-readonly-private.h |  4 ++--
+ hkl/hkl-pseudoaxis-common-tth.c              | 12 ++++++------
+ hkl/hkl-pseudoaxis-private.h                 |  2 +-
+ hkl/hkl-pseudoaxis.c                         | 12 ++++++------
+ hkl/hkl-sample.c                             |  4 ++--
+ hkl/hkl-types.c                              |  2 +-
+ 17 files changed, 48 insertions(+), 55 deletions(-)
+
+commit af0508e561facb7d149665ef4357fcd03af923c2
+Author: Picca Frédéric-Emmanuel <picca at synchrotron-soleil.fr>
+Date:   Tue Jun 23 15:54:57 2015 +0200
+
+    [doc] explaination of the pseudo axes calculation.
+    
+    this is a preliminary description.
+
+ Documentation/hkl.org.in | 15 +++++++++++++++
+ 1 file changed, 15 insertions(+)
+
+commit 6d6ca23af57014a7ed6ede8606baef6542aa8e72
+Author: Picca Frédéric-Emmanuel <picca at synchrotron-soleil.fr>
+Date:   Tue Jun 23 09:05:26 2015 +0200
+
+    [doc] corrections
+
+ Documentation/hkl.org.in | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+commit defa03acf7758f4943022218bf01817df080a2c1
+Author: Picca Frédéric-Emmanuel <picca at synchrotron-soleil.fr>
+Date:   Mon Jun 22 14:46:58 2015 +0200
+
+    [hkl] Add the emergence engine
+
+ Documentation/hkl.org.in                     |   7 +-
+ hkl/hkl-engine-e4c.c                         |  15 +--
+ hkl/hkl-engine-e6c.c                         |  13 ++-
+ hkl/hkl-engine-k4c.c                         |  13 ++-
+ hkl/hkl-engine-k6c.c                         |  14 ++-
+ hkl/hkl-engine-soleil-sirius-turret.c        |  13 ++-
+ hkl/hkl-engine-soleil-sixs-med.c             |  10 +-
+ hkl/hkl-engine-template.c                    |  13 ++-
+ hkl/hkl-engine-zaxis.c                       |  13 ++-
+ hkl/hkl-pseudoaxis-common-readonly-private.h |  36 +++++--
+ hkl/hkl-pseudoaxis-common-readonly.c         | 144 +++++++++++++++++++++++++--
+ tests/bindings/python.py                     |   2 +-
+ tests/hkl-pseudoaxis-t.c                     |   5 +-
+ 13 files changed, 232 insertions(+), 66 deletions(-)
+
+commit 05d02559b02e35626fd4932302951b587743ce62
+Author: Picca Frédéric-Emmanuel <picca at synchrotron-soleil.fr>
+Date:   Mon May 4 11:31:47 2015 +0200
+
+    [ghkl] fix for real the 3d model access
+
+ gui/hkl-gui-macros.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 31abe8d63738dfc2c4e69b2635932cf8dbccb75a
+Author: Picca Frédéric-Emmanuel <picca at synchrotron-soleil.fr>
+Date:   Mon May 4 11:20:41 2015 +0200
+
+    [hkl] post release actions
+
+ Documentation/hkl.org.in | 1 +
+ 1 file changed, 1 insertion(+)
+
 commit 926aabb78c5d91447aa6e7c426f8d6888d866103
 Author: Picca Frédéric-Emmanuel <picca at synchrotron-soleil.fr>
 Date:   Mon May 4 10:38:02 2015 +0200
diff --git a/Documentation/Makefile.in b/Documentation/Makefile.in
index 8e06388..b4c1039 100644
--- a/Documentation/Makefile.in
+++ b/Documentation/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.14.1 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
-# Foundation, Inc.
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -16,23 +15,51 @@
 @SET_MAKE@
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -52,8 +79,8 @@ POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
 subdir = Documentation
-DIST_COMMON = $(dist_html_DATA) $(dist_man_MANS) $(srcdir)/Makefile.am \
-	$(srcdir)/Makefile.in $(srcdir)/hkl.org.in
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+	$(srcdir)/hkl.org.in $(dist_man_MANS) $(dist_html_DATA)
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/m4/gtk-doc.m4 \
 	$(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
@@ -65,21 +92,28 @@ mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES = hkl.org
 CONFIG_CLEAN_VPATH_FILES =
+AM_V_P = $(am__v_P_ at AM_V@)
+am__v_P_ = $(am__v_P_ at AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
 AM_V_GEN = $(am__v_GEN_ at AM_V@)
 am__v_GEN_ = $(am__v_GEN_ at AM_DEFAULT_V@)
-am__v_GEN_0 = @echo "  GEN   " $@;
+am__v_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
 AM_V_at = $(am__v_at_ at AM_V@)
 am__v_at_ = $(am__v_at_ at AM_DEFAULT_V@)
 am__v_at_0 = @
+am__v_at_1 = 
 SOURCES =
 DIST_SOURCES =
-RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
-	html-recursive info-recursive install-data-recursive \
-	install-dvi-recursive install-exec-recursive \
-	install-html-recursive install-info-recursive \
-	install-pdf-recursive install-ps-recursive install-recursive \
-	installcheck-recursive installdirs-recursive pdf-recursive \
-	ps-recursive uninstall-recursive
+RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \
+	ctags-recursive dvi-recursive html-recursive info-recursive \
+	install-data-recursive install-dvi-recursive \
+	install-exec-recursive install-html-recursive \
+	install-info-recursive install-pdf-recursive \
+	install-ps-recursive install-recursive installcheck-recursive \
+	installdirs-recursive pdf-recursive ps-recursive \
+	tags-recursive uninstall-recursive
 am__can_run_installinfo = \
   case $$AM_UPDATE_INFO_DIR in \
     n|no|NO) false;; \
@@ -119,9 +153,29 @@ MANS = $(dist_man_MANS)
 DATA = $(dist_html_DATA)
 RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive	\
   distclean-recursive maintainer-clean-recursive
-AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
-	$(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \
+am__recursive_targets = \
+  $(RECURSIVE_TARGETS) \
+  $(RECURSIVE_CLEAN_TARGETS) \
+  $(am__extra_recursive_targets)
+AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \
 	distdir
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DIST_SUBDIRS = $(SUBDIRS)
@@ -202,6 +256,7 @@ GSL_CFLAGS = @GSL_CFLAGS@
 GSL_CONFIG = @GSL_CONFIG@
 GSL_LIBS = @GSL_LIBS@
 GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_CHECK_PATH = @GTKDOC_CHECK_PATH@
 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
 GTKDOC_MKPDF = @GTKDOC_MKPDF@
@@ -432,22 +487,25 @@ uninstall-dist_htmlDATA:
 	dir='$(DESTDIR)$(htmldir)'; $(am__uninstall_files_from_dir)
 
 # This directory's subdirectories are mostly independent; you can cd
-# into them and run `make' without going through this Makefile.
-# To change the values of `make' variables: instead of editing Makefiles,
-# (1) if the variable is set in `config.status', edit `config.status'
-#     (which will cause the Makefiles to be regenerated when you run `make');
-# (2) otherwise, pass the desired values on the `make' command line.
-$(RECURSIVE_TARGETS):
-	@fail= failcom='exit 1'; \
-	for f in x $$MAKEFLAGS; do \
-	  case $$f in \
-	    *=* | --[!k]*);; \
-	    *k*) failcom='fail=yes';; \
-	  esac; \
-	done; \
+# into them and run 'make' without going through this Makefile.
+# To change the values of 'make' variables: instead of editing Makefiles,
+# (1) if the variable is set in 'config.status', edit 'config.status'
+#     (which will cause the Makefiles to be regenerated when you run 'make');
+# (2) otherwise, pass the desired values on the 'make' command line.
+$(am__recursive_targets):
+	@fail=; \
+	if $(am__make_keepgoing); then \
+	  failcom='fail=yes'; \
+	else \
+	  failcom='exit 1'; \
+	fi; \
 	dot_seen=no; \
 	target=`echo $@ | sed s/-recursive//`; \
-	list='$(SUBDIRS)'; for subdir in $$list; do \
+	case "$@" in \
+	  distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
+	  *) list='$(SUBDIRS)' ;; \
+	esac; \
+	for subdir in $$list; do \
 	  echo "Making $$target in $$subdir"; \
 	  if test "$$subdir" = "."; then \
 	    dot_seen=yes; \
@@ -462,57 +520,12 @@ $(RECURSIVE_TARGETS):
 	  $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
 	fi; test -z "$$fail"
 
-$(RECURSIVE_CLEAN_TARGETS):
-	@fail= failcom='exit 1'; \
-	for f in x $$MAKEFLAGS; do \
-	  case $$f in \
-	    *=* | --[!k]*);; \
-	    *k*) failcom='fail=yes';; \
-	  esac; \
-	done; \
-	dot_seen=no; \
-	case "$@" in \
-	  distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
-	  *) list='$(SUBDIRS)' ;; \
-	esac; \
-	rev=''; for subdir in $$list; do \
-	  if test "$$subdir" = "."; then :; else \
-	    rev="$$subdir $$rev"; \
-	  fi; \
-	done; \
-	rev="$$rev ."; \
-	target=`echo $@ | sed s/-recursive//`; \
-	for subdir in $$rev; do \
-	  echo "Making $$target in $$subdir"; \
-	  if test "$$subdir" = "."; then \
-	    local_target="$$target-am"; \
-	  else \
-	    local_target="$$target"; \
-	  fi; \
-	  ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
-	  || eval $$failcom; \
-	done && test -z "$$fail"
-tags-recursive:
-	list='$(SUBDIRS)'; for subdir in $$list; do \
-	  test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
-	done
-ctags-recursive:
-	list='$(SUBDIRS)'; for subdir in $$list; do \
-	  test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
-	done
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-recursive
+TAGS: tags
 
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
-	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	mkid -fID $$unique
-tags: TAGS
-
-TAGS: tags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	set x; \
 	here=`pwd`; \
 	if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
@@ -528,12 +541,7 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 	      set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
 	  fi; \
 	done; \
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -545,15 +553,11 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 	      $$unique; \
 	  fi; \
 	fi
-ctags: CTAGS
-CTAGS: ctags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+ctags: ctags-recursive
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -562,24 +566,26 @@ GTAGS:
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-recursive
+
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
 
 distdir: $(DISTFILES)
-	@list='$(MANS)'; if test -n "$$list"; then \
-	  list=`for p in $$list; do \
-	    if test -f $$p; then d=; else d="$(srcdir)/"; fi; \
-	    if test -f "$$d$$p"; then echo "$$d$$p"; else :; fi; done`; \
-	  if test -n "$$list" && \
-	    grep 'ab help2man is required to generate this page' $$list >/dev/null; then \
-	    echo "error: found man pages containing the \`missing help2man' replacement text:" >&2; \
-	    grep -l 'ab help2man is required to generate this page' $$list | sed 's/^/         /' >&2; \
-	    echo "       to fix them, install help2man, remove and regenerate the man pages;" >&2; \
-	    echo "       typically \`make maintainer-clean' will remove them" >&2; \
-	    exit 1; \
-	  else :; fi; \
-	else :; fi
 	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
 	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
 	list='$(DISTFILES)'; \
@@ -741,24 +747,22 @@ uninstall-am: uninstall-dist_htmlDATA uninstall-man
 
 uninstall-man: uninstall-man1
 
-.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \
-	install-am install-strip tags-recursive
-
-.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
-	all all-am check check-am clean clean-generic clean-libtool \
-	ctags ctags-recursive distclean distclean-generic \
-	distclean-libtool distclean-tags distdir dvi dvi-am html \
-	html-am info info-am install install-am install-data \
-	install-data-am install-dist_htmlDATA install-dvi \
-	install-dvi-am install-exec install-exec-am install-html \
-	install-html-am install-info install-info-am install-man \
-	install-man1 install-pdf install-pdf-am install-ps \
-	install-ps-am install-strip installcheck installcheck-am \
-	installdirs installdirs-am maintainer-clean \
-	maintainer-clean-generic mostlyclean mostlyclean-generic \
-	mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \
-	uninstall uninstall-am uninstall-dist_htmlDATA uninstall-man \
-	uninstall-man1
+.MAKE: $(am__recursive_targets) install-am install-strip
+
+.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \
+	check-am clean clean-generic clean-libtool cscopelist-am ctags \
+	ctags-am distclean distclean-generic distclean-libtool \
+	distclean-tags distdir dvi dvi-am html html-am info info-am \
+	install install-am install-data install-data-am \
+	install-dist_htmlDATA install-dvi install-dvi-am install-exec \
+	install-exec-am install-html install-html-am install-info \
+	install-info-am install-man install-man1 install-pdf \
+	install-pdf-am install-ps install-ps-am install-strip \
+	installcheck installcheck-am installdirs installdirs-am \
+	maintainer-clean maintainer-clean-generic mostlyclean \
+	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
+	tags tags-am uninstall uninstall-am uninstall-dist_htmlDATA \
+	uninstall-man uninstall-man1
 
 
 hkl.html: hkl.org $(srcdir)/default.el
diff --git a/Documentation/api/Makefile.in b/Documentation/api/Makefile.in
index ff18a39..9a24450 100644
--- a/Documentation/api/Makefile.in
+++ b/Documentation/api/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.14.1 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
-# Foundation, Inc.
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -21,23 +20,51 @@
 # Everything below here is generic #
 ####################################
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
+    esac; \
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -56,8 +83,8 @@ PRE_UNINSTALL = :
 POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
-	$(top_srcdir)/gtk-doc.make
+DIST_COMMON = $(top_srcdir)/gtk-doc.make $(srcdir)/Makefile.in \
+	$(srcdir)/Makefile.am
 subdir = Documentation/api
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/m4/gtk-doc.m4 \
@@ -70,12 +97,18 @@ mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
 CONFIG_CLEAN_VPATH_FILES =
+AM_V_P = $(am__v_P_ at AM_V@)
+am__v_P_ = $(am__v_P_ at AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
 AM_V_GEN = $(am__v_GEN_ at AM_V@)
 am__v_GEN_ = $(am__v_GEN_ at AM_DEFAULT_V@)
-am__v_GEN_0 = @echo "  GEN   " $@;
+am__v_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
 AM_V_at = $(am__v_at_ at AM_V@)
 am__v_at_ = $(am__v_at_ at AM_DEFAULT_V@)
 am__v_at_0 = @
+am__v_at_1 = 
 SOURCES =
 DIST_SOURCES =
 am__can_run_installinfo = \
@@ -83,6 +116,7 @@ am__can_run_installinfo = \
     n|no|NO) false;; \
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ALLOCA = @ALLOCA@
@@ -135,6 +169,7 @@ GSL_CFLAGS = @GSL_CFLAGS@
 GSL_CONFIG = @GSL_CONFIG@
 GSL_LIBS = @GSL_LIBS@
 GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_CHECK_PATH = @GTKDOC_CHECK_PATH@
 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
 GTKDOC_MKPDF = @GTKDOC_MKPDF@
@@ -374,11 +409,42 @@ REPORT_FILES = \
 	$(DOC_MODULE)-undeclared.txt \
 	$(DOC_MODULE)-unused.txt
 
-CLEANFILES = $(SCANOBJ_FILES) $(REPORT_FILES) $(DOC_STAMPS)
- at ENABLE_GTK_DOC_TRUE@@GTK_DOC_BUILD_HTML_FALSE at HTML_BUILD_STAMP = 
- at ENABLE_GTK_DOC_TRUE@@GTK_DOC_BUILD_HTML_TRUE at HTML_BUILD_STAMP = html-build.stamp
- at ENABLE_GTK_DOC_TRUE@@GTK_DOC_BUILD_PDF_FALSE at PDF_BUILD_STAMP = 
- at ENABLE_GTK_DOC_TRUE@@GTK_DOC_BUILD_PDF_TRUE at PDF_BUILD_STAMP = pdf-build.stamp
+CLEANFILES = $(SCANOBJ_FILES) $(REPORT_FILES) $(DOC_STAMPS) gtkdoc-check.test
+ at GTK_DOC_BUILD_HTML_FALSE@HTML_BUILD_STAMP = 
+ at GTK_DOC_BUILD_HTML_TRUE@HTML_BUILD_STAMP = html-build.stamp
+ at GTK_DOC_BUILD_PDF_FALSE@PDF_BUILD_STAMP = 
+ at GTK_DOC_BUILD_PDF_TRUE@PDF_BUILD_STAMP = pdf-build.stamp
+
+#### setup ####
+GTK_DOC_V_SETUP = $(GTK_DOC_V_SETUP_$(V))
+GTK_DOC_V_SETUP_ = $(GTK_DOC_V_SETUP_$(AM_DEFAULT_VERBOSITY))
+GTK_DOC_V_SETUP_0 = @echo "  DOC   Preparing build";
+
+#### scan ####
+GTK_DOC_V_SCAN = $(GTK_DOC_V_SCAN_$(V))
+GTK_DOC_V_SCAN_ = $(GTK_DOC_V_SCAN_$(AM_DEFAULT_VERBOSITY))
+GTK_DOC_V_SCAN_0 = @echo "  DOC   Scanning header files";
+GTK_DOC_V_INTROSPECT = $(GTK_DOC_V_INTROSPECT_$(V))
+GTK_DOC_V_INTROSPECT_ = $(GTK_DOC_V_INTROSPECT_$(AM_DEFAULT_VERBOSITY))
+GTK_DOC_V_INTROSPECT_0 = @echo "  DOC   Introspecting gobjects";
+
+#### xml ####
+GTK_DOC_V_XML = $(GTK_DOC_V_XML_$(V))
+GTK_DOC_V_XML_ = $(GTK_DOC_V_XML_$(AM_DEFAULT_VERBOSITY))
+GTK_DOC_V_XML_0 = @echo "  DOC   Building XML";
+
+#### html ####
+GTK_DOC_V_HTML = $(GTK_DOC_V_HTML_$(V))
+GTK_DOC_V_HTML_ = $(GTK_DOC_V_HTML_$(AM_DEFAULT_VERBOSITY))
+GTK_DOC_V_HTML_0 = @echo "  DOC   Building HTML";
+GTK_DOC_V_XREF = $(GTK_DOC_V_XREF_$(V))
+GTK_DOC_V_XREF_ = $(GTK_DOC_V_XREF_$(AM_DEFAULT_VERBOSITY))
+GTK_DOC_V_XREF_0 = @echo "  DOC   Fixing cross-references";
+
+#### pdf ####
+GTK_DOC_V_PDF = $(GTK_DOC_V_PDF_$(V))
+GTK_DOC_V_PDF_ = $(GTK_DOC_V_PDF_$(AM_DEFAULT_VERBOSITY))
+GTK_DOC_V_PDF_0 = @echo "  DOC   Building PDF";
 
 # Files not to distribute
 # for --rebuild-types in $(SCAN_OPTIONS), e.g. $(DOC_MODULE).types
@@ -424,11 +490,11 @@ mostlyclean-libtool:
 
 clean-libtool:
 	-rm -rf .libs _libs
-tags: TAGS
-TAGS:
+tags TAGS:
+
+ctags CTAGS:
 
-ctags: CTAGS
-CTAGS:
+cscope cscopelist:
 
 
 distdir: $(DISTFILES)
@@ -466,6 +532,7 @@ distdir: $(DISTFILES)
 	  dist-hook
 check-am: all-am
 check: check-am
+ at ENABLE_GTK_DOC_FALSE@all-local:
 all-am: Makefile all-local
 installdirs:
 install: install-am
@@ -570,53 +637,55 @@ uninstall-am: uninstall-local
 .MAKE: install-am install-strip
 
 .PHONY: all all-am all-local check check-am clean clean-generic \
-	clean-libtool clean-local dist-hook distclean \
-	distclean-generic distclean-libtool distclean-local distdir \
-	dvi dvi-am html html-am info info-am install install-am \
-	install-data install-data-am install-data-local install-dvi \
-	install-dvi-am install-exec install-exec-am install-html \
-	install-html-am install-info install-info-am install-man \
-	install-pdf install-pdf-am install-ps install-ps-am \
-	install-strip installcheck installcheck-am installdirs \
-	maintainer-clean maintainer-clean-generic \
+	clean-libtool clean-local cscopelist-am ctags-am dist-hook \
+	distclean distclean-generic distclean-libtool distclean-local \
+	distdir dvi dvi-am html html-am info info-am install \
+	install-am install-data install-data-am install-data-local \
+	install-dvi install-dvi-am install-exec install-exec-am \
+	install-html install-html-am install-info install-info-am \
+	install-man install-pdf install-pdf-am install-ps \
+	install-ps-am install-strip installcheck installcheck-am \
+	installdirs maintainer-clean maintainer-clean-generic \
 	maintainer-clean-local mostlyclean mostlyclean-generic \
-	mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am \
-	uninstall-local
+	mostlyclean-libtool pdf pdf-am ps ps-am tags-am uninstall \
+	uninstall-am uninstall-local
 
 
- at ENABLE_GTK_DOC_TRUE@all-local: $(HTML_BUILD_STAMP) $(PDF_BUILD_STAMP)
- at ENABLE_GTK_DOC_FALSE@all-local:
+gtkdoc-check.test: Makefile
+	$(AM_V_GEN)echo "#!/bin/sh -e" > $@; \
+		echo "$(GTKDOC_CHECK_PATH) || exit 1" >> $@; \
+		chmod +x $@
+
+all-gtk-doc: $(HTML_BUILD_STAMP) $(PDF_BUILD_STAMP)
+.PHONY: all-gtk-doc
+
+ at ENABLE_GTK_DOC_TRUE@all-local: all-gtk-doc
 
 docs: $(HTML_BUILD_STAMP) $(PDF_BUILD_STAMP)
 
 $(REPORT_FILES): sgml-build.stamp
 
-#### setup ####
-
 setup-build.stamp:
-	- at if test "$(abs_srcdir)" != "$(abs_builddir)" ; then \
-	    echo '  DOC   Preparing build'; \
+	-$(GTK_DOC_V_SETUP)if test "$(abs_srcdir)" != "$(abs_builddir)" ; then \
 	    files=`echo $(SETUP_FILES) $(expand_content_files) $(DOC_MODULE).types`; \
 	    if test "x$$files" != "x" ; then \
 	        for file in $$files ; do \
+	            destdir=`dirname $(abs_builddir)/$$file`; \
+	            test -d "$$destdir" || mkdir -p "$$destdir"; \
 	            test -f $(abs_srcdir)/$$file && \
-	                cp -pu $(abs_srcdir)/$$file $(abs_builddir)/ || true; \
+	                cp -pf $(abs_srcdir)/$$file $(abs_builddir)/$$file || true; \
 	        done; \
 	    fi; \
 	fi
-	@touch setup-build.stamp
-
-#### scan ####
+	$(AM_V_at)touch setup-build.stamp
 
-scan-build.stamp: $(HFILE_GLOB) $(CFILE_GLOB)
-	@echo '  DOC   Scanning header files'
-	@_source_dir='' ; \
+scan-build.stamp: setup-build.stamp $(HFILE_GLOB) $(CFILE_GLOB)
+	$(GTK_DOC_V_SCAN)_source_dir='' ; \
 	for i in $(DOC_SOURCE_DIR) ; do \
 	    _source_dir="$${_source_dir} --source-dir=$$i" ; \
 	done ; \
 	gtkdoc-scan --module=$(DOC_MODULE) --ignore-headers="$(IGNORE_HFILES)" $${_source_dir} $(SCAN_OPTIONS) $(EXTRA_HFILES)
-	@if grep -l '^..*$$' $(DOC_MODULE).types > /dev/null 2>&1 ; then \
-	    echo "  DOC   Introspecting gobjects"; \
+	$(GTK_DOC_V_INTROSPECT)if grep -l '^..*$$' $(DOC_MODULE).types > /dev/null 2>&1 ; then \
 	    scanobj_options=""; \
 	    gtkdoc-scangobj 2>&1 --help | grep  >/dev/null "\-\-verbose"; \
 	    if test "$(?)" = "0"; then \
@@ -631,32 +700,25 @@ scan-build.stamp: $(HFILE_GLOB) $(CFILE_GLOB)
 	        test -f $$i || touch $$i ; \
 	    done \
 	fi
-	@touch scan-build.stamp
+	$(AM_V_at)touch scan-build.stamp
 
 $(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt: scan-build.stamp
 	@true
 
-#### xml ####
-
 sgml-build.stamp: setup-build.stamp $(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt $(expand_content_files)
-	@echo '  DOC   Building XML'
-	@_source_dir='' ; \
+	$(GTK_DOC_V_XML)_source_dir='' ; \
 	for i in $(DOC_SOURCE_DIR) ; do \
 	    _source_dir="$${_source_dir} --source-dir=$$i" ; \
 	done ; \
 	gtkdoc-mkdb --module=$(DOC_MODULE) --output-format=xml --expand-content-files="$(expand_content_files)" --main-sgml-file=$(DOC_MAIN_SGML_FILE) $${_source_dir} $(MKDB_OPTIONS)
-	@touch sgml-build.stamp
+	$(AM_V_at)touch sgml-build.stamp
 
 sgml.stamp: sgml-build.stamp
 	@true
 
-#### html ####
-
 html-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files)
-	@echo '  DOC   Building HTML'
-	@rm -rf html
-	@mkdir html
-	@mkhtml_options=""; \
+	$(GTK_DOC_V_HTML)rm -rf html && mkdir html && \
+	mkhtml_options=""; \
 	gtkdoc-mkhtml 2>&1 --help | grep  >/dev/null "\-\-verbose"; \
 	if test "$(?)" = "0"; then \
 	  if test "x$(V)" = "x1"; then \
@@ -677,16 +739,12 @@ html-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files)
 	    cp $(abs_builddir)/$$file $(abs_builddir)/html; \
 	  fi; \
 	done;
-	@echo '  DOC   Fixing cross-references'
-	@gtkdoc-fixxref --module=$(DOC_MODULE) --module-dir=html --html-dir=$(HTML_DIR) $(FIXXREF_OPTIONS)
-	@touch html-build.stamp
-
-#### pdf ####
+	$(GTK_DOC_V_XREF)gtkdoc-fixxref --module=$(DOC_MODULE) --module-dir=html --html-dir=$(HTML_DIR) $(FIXXREF_OPTIONS)
+	$(AM_V_at)touch html-build.stamp
 
 pdf-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files)
-	@echo '  DOC   Building PDF'
-	@rm -f $(DOC_MODULE).pdf
-	@mkpdf_options=""; \
+	$(GTK_DOC_V_PDF)rm -f $(DOC_MODULE).pdf && \
+	mkpdf_options=""; \
 	gtkdoc-mkpdf 2>&1 --help | grep  >/dev/null "\-\-verbose"; \
 	if test "$(?)" = "0"; then \
 	  if test "x$(V)" = "x1"; then \
@@ -703,13 +761,16 @@ pdf-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files)
 	  done; \
 	fi; \
 	gtkdoc-mkpdf --path="$(abs_srcdir)" $$mkpdf_options $(DOC_MODULE) $(DOC_MAIN_SGML_FILE) $(MKPDF_OPTIONS)
-	@touch pdf-build.stamp
+	$(AM_V_at)touch pdf-build.stamp
 
 ##############
 
 clean-local:
 	@rm -f *~ *.bak
 	@rm -rf .libs
+	@if echo $(SCAN_OPTIONS) | grep -q "\-\-rebuild-types" ; then \
+	  rm -f $(DOC_MODULE).types; \
+	fi
 
 distclean-local:
 	@rm -rf xml html $(REPORT_FILES) $(DOC_MODULE).pdf \
@@ -718,7 +779,7 @@ distclean-local:
 	    rm -f $(SETUP_FILES) $(expand_content_files) $(DOC_MODULE).types; \
 	fi
 
-maintainer-clean-local: clean
+maintainer-clean-local:
 	@rm -rf xml html
 
 install-data-local:
@@ -754,12 +815,14 @@ uninstall-local:
 #
 # Require gtk-doc when making dist
 #
- at ENABLE_GTK_DOC_TRUE@dist-check-gtkdoc:
- at ENABLE_GTK_DOC_FALSE@dist-check-gtkdoc:
- at ENABLE_GTK_DOC_FALSE@	@echo "*** gtk-doc must be installed and enabled in order to make dist"
- at ENABLE_GTK_DOC_FALSE@	@false
-
-dist-hook: dist-check-gtkdoc dist-hook-local
+ at HAVE_GTK_DOC_TRUE@dist-check-gtkdoc: docs
+ at HAVE_GTK_DOC_FALSE@dist-check-gtkdoc:
+ at HAVE_GTK_DOC_FALSE@	@echo "*** gtk-doc is needed to run 'make dist'.         ***"
+ at HAVE_GTK_DOC_FALSE@	@echo "*** gtk-doc was not found when 'configure' ran.   ***"
+ at HAVE_GTK_DOC_FALSE@	@echo "*** please install gtk-doc and rerun 'configure'. ***"
+ at HAVE_GTK_DOC_FALSE@	@false
+
+dist-hook: dist-check-gtkdoc all-gtk-doc dist-hook-local
 	@mkdir $(distdir)/html
 	@cp ./html/* $(distdir)/html
 	@-cp ./$(DOC_MODULE).pdf $(distdir)/
diff --git a/Documentation/api/html/annotation-glossary.html b/Documentation/api/html/annotation-glossary.html
index 5f13e8c..18d0a6c 100644
--- a/Documentation/api/html/annotation-glossary.html
+++ b/Documentation/api/html/annotation-glossary.html
@@ -2,52 +2,41 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Annotation Glossary</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<title>hkl Reference Manual: Annotation Glossary</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="hkl Reference Manual">
 <link rel="up" href="index.html" title="hkl Reference Manual">
 <link rel="prev" href="deprecated-api-index.html" title="Index of deprecated API">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
-<tr valign="middle">
-<td><a accesskey="p" href="deprecated-api-index.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td> </td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">hkl Reference Manual</th>
-<td> </td>
-</tr>
-<tr><td colspan="5" class="shortcuts">
-<a class="shortcut" href="#glsO">O</a>
-                      | 
-                   <a class="shortcut" href="#glsI">I</a>
-                      | 
-                   <a class="shortcut" href="#glsT">T</a>
-</td></tr>
-</table>
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts"><span id="nav_glossary"><a class="shortcut" href="#glsI">I</a>
+                     <span class="dim">|</span> 
+                  <a class="shortcut" href="#glsO">O</a>
+                     <span class="dim">|</span> 
+                  <a class="shortcut" href="#glsT">T</a></span></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><img src="up-insensitive.png" width="16" height="16" border="0"></td>
+<td><a accesskey="p" href="deprecated-api-index.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><img src="right-insensitive.png" width="16" height="16" border="0"></td>
+</tr></table>
 <div class="glossary">
-<div class="titlepage"><div><div><h2 class="title">
-<a name="annotation-glossary"></a>Annotation Glossary</h2></div></div></div>
-<a name="glsO"></a><h3 class="title">O</h3>
-<dt>
-<a name="annotation-glossterm-out"></a>out</dt>
-<dd><p>Parameter for returning results. Default is <acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>.</p></dd>
+<div class="titlepage"><div><div><h1 class="title">
+<a name="annotation-glossary"></a>Annotation Glossary</h1></div></div></div>
 <a name="glsI"></a><h3 class="title">I</h3>
-<dt>
-<a name="annotation-glossterm-in"></a>in</dt>
-<dd><p>Parameter for input. Default is <acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>.</p></dd>
+<dt><span class="glossterm"><a name="annotation-glossterm-in"></a>in</span></dt>
+<dd class="glossdef"><p>Parameter for input. Default is <acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>.</p></dd>
+<a name="glsO"></a><h3 class="title">O</h3>
+<dt><span class="glossterm"><a name="annotation-glossterm-out%20caller-allocates"></a>out caller-allocates</span></dt>
+<dd class="glossdef"><p>Out parameter, where caller must allocate storage.</p></dd>
 <a name="glsT"></a><h3 class="title">T</h3>
-<dt>
-<a name="annotation-glossterm-transfer%20full"></a>transfer full</dt>
-<dd><p>Free data after the code is done.</p></dd>
-<dt>
-<a name="annotation-glossterm-transfer%20none"></a>transfer none</dt>
-<dd><p>Don't free data after the code is done.</p></dd>
+<dt><span class="glossterm"><a name="annotation-glossterm-transfer%20none"></a>transfer none</span></dt>
+<dd class="glossdef"><p>Don't free data after the code is done.</p></dd>
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/Documentation/api/html/api-index-full.html b/Documentation/api/html/api-index-full.html
index c8c523d..c524b1e 100644
--- a/Documentation/api/html/api-index-full.html
+++ b/Documentation/api/html/api-index-full.html
@@ -2,71 +2,66 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>API Index</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<title>hkl Reference Manual: API Index</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="hkl Reference Manual">
 <link rel="up" href="index.html" title="hkl Reference Manual">
 <link rel="prev" href="object-tree.html" title="Object Hierarchy">
 <link rel="next" href="deprecated-api-index.html" title="Index of deprecated API">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
-<tr valign="middle">
-<td><a accesskey="p" href="object-tree.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td> </td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">hkl Reference Manual</th>
-<td><a accesskey="n" href="deprecated-api-index.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
-</tr>
-<tr><td colspan="5" class="shortcuts">
-<a class="shortcut" href="#idxA">A</a>
-                      | 
-                   <a class="shortcut" href="#idxB">B</a>
-                      | 
-                   <a class="shortcut" href="#idxC">C</a>
-                      | 
-                   <a class="shortcut" href="#idxD">D</a>
-                      | 
-                   <a class="shortcut" href="#idxE">E</a>
-                      | 
-                   <a class="shortcut" href="#idxF">F</a>
-                      | 
-                   <a class="shortcut" href="#idxG">G</a>
-                      | 
-                   <a class="shortcut" href="#idxH">H</a>
-                      | 
-                   <a class="shortcut" href="#idxI">I</a>
-                      | 
-                   <a class="shortcut" href="#idxK">K</a>
-                      | 
-                   <a class="shortcut" href="#idxL">L</a>
-                      | 
-                   <a class="shortcut" href="#idxM">M</a>
-                      | 
-                   <a class="shortcut" href="#idxN">N</a>
-                      | 
-                   <a class="shortcut" href="#idxP">P</a>
-                      | 
-                   <a class="shortcut" href="#idxQ">Q</a>
-                      | 
-                   <a class="shortcut" href="#idxR">R</a>
-                      | 
-                   <a class="shortcut" href="#idxS">S</a>
-                      | 
-                   <a class="shortcut" href="#idxT">T</a>
-                      | 
-                   <a class="shortcut" href="#idxU">U</a>
-                      | 
-                   <a class="shortcut" href="#idxV">V</a>
-                      | 
-                   <a class="shortcut" href="#idxW">W</a>
-</td></tr>
-</table>
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts"><span id="nav_index"><a class="shortcut" href="#idxA">A</a>
+                     <span class="dim">|</span> 
+                  <a class="shortcut" href="#idxB">B</a>
+                     <span class="dim">|</span> 
+                  <a class="shortcut" href="#idxC">C</a>
+                     <span class="dim">|</span> 
+                  <a class="shortcut" href="#idxD">D</a>
+                     <span class="dim">|</span> 
+                  <a class="shortcut" href="#idxE">E</a>
+                     <span class="dim">|</span> 
+                  <a class="shortcut" href="#idxF">F</a>
+                     <span class="dim">|</span> 
+                  <a class="shortcut" href="#idxG">G</a>
+                     <span class="dim">|</span> 
+                  <a class="shortcut" href="#idxH">H</a>
+                     <span class="dim">|</span> 
+                  <a class="shortcut" href="#idxI">I</a>
+                     <span class="dim">|</span> 
+                  <a class="shortcut" href="#idxK">K</a>
+                     <span class="dim">|</span> 
+                  <a class="shortcut" href="#idxL">L</a>
+                     <span class="dim">|</span> 
+                  <a class="shortcut" href="#idxM">M</a>
+                     <span class="dim">|</span> 
+                  <a class="shortcut" href="#idxN">N</a>
+                     <span class="dim">|</span> 
+                  <a class="shortcut" href="#idxP">P</a>
+                     <span class="dim">|</span> 
+                  <a class="shortcut" href="#idxQ">Q</a>
+                     <span class="dim">|</span> 
+                  <a class="shortcut" href="#idxR">R</a>
+                     <span class="dim">|</span> 
+                  <a class="shortcut" href="#idxS">S</a>
+                     <span class="dim">|</span> 
+                  <a class="shortcut" href="#idxT">T</a>
+                     <span class="dim">|</span> 
+                  <a class="shortcut" href="#idxU">U</a>
+                     <span class="dim">|</span> 
+                  <a class="shortcut" href="#idxV">V</a>
+                     <span class="dim">|</span> 
+                  <a class="shortcut" href="#idxW">W</a></span></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><img src="up-insensitive.png" width="16" height="16" border="0"></td>
+<td><a accesskey="p" href="object-tree.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="deprecated-api-index.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
 <div class="index">
-<div class="titlepage"><div><div><h2 class="title">
-<a name="api-index-full"></a>API Index</h2></div></div></div>
+<div class="titlepage"><div><div><h1 class="title">
+<a name="api-index-full"></a>API Index</h1></div></div></div>
 <a name="idx"></a><a name="idxA"></a><h3 class="title">A</h3>
 <dt>
 <a class="link" href="hkl-hkl-parameter-private.html#alea" title="alea">alea</a>, variable in <a class="link" href="hkl-hkl-parameter-private.html" title="hkl-parameter-private">hkl-parameter-private</a>
@@ -101,7 +96,7 @@
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="hkl-autodata.html#autodata-free" title="autodata_free ()">autodata_free</a>, function in <a class="link" href="hkl-autodata.html" title="autodata">autodata</a>
+<a class="link" href="hkl-autodata.html#autodata-free" title="autodata_free ()">autodata_free</a>, function in <a class="link" href="hkl-autodata.html" title="autodata">autodata</a>
 </dt>
 <dd></dd>
 <dt>
@@ -109,7 +104,7 @@
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="hkl-autodata.html#autodata-get-section" title="autodata_get_section ()">autodata_get_section</a>, function in <a class="link" href="hkl-autodata.html" title="autodata">autodata</a>
+<a class="link" href="hkl-autodata.html#autodata-get-section" title="autodata_get_section ()">autodata_get_section</a>, function in <a class="link" href="hkl-autodata.html" title="autodata">autodata</a>
 </dt>
 <dd></dd>
 <dt>
@@ -117,7 +112,7 @@
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="hkl-autodata.html#autodata-make-table" title="autodata_make_table ()">autodata_make_table</a>, function in <a class="link" href="hkl-autodata.html" title="autodata">autodata</a>
+<a class="link" href="hkl-autodata.html#autodata-make-table" title="autodata_make_table ()">autodata_make_table</a>, function in <a class="link" href="hkl-autodata.html" title="autodata">autodata</a>
 </dt>
 <dd></dd>
 <dt>
@@ -163,7 +158,7 @@
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="hkl-noerr.html#close-noerr" title="close_noerr ()">close_noerr</a>, function in <a class="link" href="hkl-noerr.html" title="noerr">noerr</a>
+<a class="link" href="hkl-noerr.html#close-noerr" title="close_noerr ()">close_noerr</a>, function in <a class="link" href="hkl-noerr.html" title="noerr">noerr</a>
 </dt>
 <dd></dd>
 <dt>
@@ -300,7 +295,7 @@ cmp, user_function in htable
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="hkl-darray.html#darray-item" title="darray_item ()">darray_item</a>, function in <a class="link" href="hkl-hkl-pseudoaxis-private.html" title="hkl-pseudoaxis-private">hkl-pseudoaxis-private</a>
+<a class="link" href="hkl-darray.html#darray-item" title="darray_item ()">darray_item</a>, function in <a class="link" href="hkl-hkl-pseudoaxis-private.html" title="hkl-pseudoaxis-private">hkl-pseudoaxis-private</a>
 </dt>
 <dd></dd>
 <dt>
@@ -428,15 +423,15 @@ cmp, user_function in htable
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="hkl-hkl-detector-private.html#hkl-detector-attach-to-holder" title="hkl_detector_attach_to_holder ()">hkl_detector_attach_to_holder</a>, function in <a class="link" href="hkl-hkl-detector-private.html" title="hkl-detector-private">hkl-detector-private</a>
+<a class="link" href="hkl-hkl-detector-private.html#hkl-detector-attach-to-holder" title="hkl_detector_attach_to_holder ()">hkl_detector_attach_to_holder</a>, function in <a class="link" href="hkl-hkl-detector-private.html" title="hkl-detector-private">hkl-detector-private</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="hkl-hkl-detector-private.html#hkl-detector-compute-kf" title="hkl_detector_compute_kf ()">hkl_detector_compute_kf</a>, function in <a class="link" href="hkl-hkl-detector-private.html" title="hkl-detector-private">hkl-detector-private</a>
+<a class="link" href="hkl-hkl-detector-private.html#hkl-detector-compute-kf" title="hkl_detector_compute_kf ()">hkl_detector_compute_kf</a>, function in <a class="link" href="hkl-hkl-detector-private.html" title="hkl-detector-private">hkl-detector-private</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="hkl-hkl-detector-private.html#hkl-detector-new" title="hkl_detector_new ()">hkl_detector_new</a>, function in <a class="link" href="hkl-hkl-detector-private.html" title="hkl-detector-private">hkl-detector-private</a>
+<a class="link" href="hkl-hkl-detector-private.html#hkl-detector-new" title="hkl_detector_new ()">hkl_detector_new</a>, function in <a class="link" href="hkl-hkl-detector-private.html" title="hkl-detector-private">hkl-detector-private</a>
 </dt>
 <dd></dd>
 <dt>
@@ -493,15 +488,19 @@ HklEngineTth2, struct in hkl-pseudoaxis-common-tth-private
 </dt>
 <dd></dd>
 <dt>
+hkl_engine_emergence_new, function in hkl-pseudoaxis-common-readonly-private
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="hkl-hkl-pseudoaxis-private.html#HKL-ENGINE-ERROR:CAPS" title="HKL_ENGINE_ERROR">HKL_ENGINE_ERROR</a>, macro in <a class="link" href="hkl-hkl-pseudoaxis-private.html" title="hkl-pseudoaxis-private">hkl-pseudoaxis-private</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="hkl-hkl-pseudoaxis-common-eulerians-private.html#hkl-engine-eulerians-new" title="hkl_engine_eulerians_new ()">hkl_engine_eulerians_new</a>, function in <a class="link" href="hkl-hkl-pseudoaxis-common-eulerians-private.html" title="hkl-pseudoaxis-common-eulerians-private">hkl-pseudoaxis-common-eulerians-private</a>
+<a class="link" href="hkl-hkl-pseudoaxis-common-eulerians-private.html#hkl-engine-eulerians-new" title="hkl_engine_eulerians_new ()">hkl_engine_eulerians_new</a>, function in <a class="link" href="hkl-hkl-pseudoaxis-common-eulerians-private.html" title="hkl-pseudoaxis-common-eulerians-private">hkl-pseudoaxis-common-eulerians-private</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="hkl-hkl-pseudoaxis-common-hkl-private.html#hkl-engine-hkl-new" title="hkl_engine_hkl_new ()">hkl_engine_hkl_new</a>, function in <a class="link" href="hkl-hkl-pseudoaxis-common-hkl-private.html" title="hkl-pseudoaxis-common-hkl-private">hkl-pseudoaxis-common-hkl-private</a>
+<a class="link" href="hkl-hkl-pseudoaxis-common-hkl-private.html#hkl-engine-hkl-new" title="hkl_engine_hkl_new ()">hkl_engine_hkl_new</a>, function in <a class="link" href="hkl-hkl-pseudoaxis-common-hkl-private.html" title="hkl-pseudoaxis-common-hkl-private">hkl-pseudoaxis-common-hkl-private</a>
 </dt>
 <dd></dd>
 <dt>
@@ -521,19 +520,19 @@ hkl_engine_incidence_new, function in hkl-pseudoaxis-common-readonly-private
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="hkl-hkl-pseudoaxis-common-psi-private.html#hkl-engine-psi-new" title="hkl_engine_psi_new ()">hkl_engine_psi_new</a>, function in <a class="link" href="hkl-hkl-pseudoaxis-common-psi-private.html" title="hkl-pseudoaxis-common-psi-private">hkl-pseudoaxis-common-psi-private</a>
+<a class="link" href="hkl-hkl-pseudoaxis-common-psi-private.html#hkl-engine-psi-new" title="hkl_engine_psi_new ()">hkl_engine_psi_new</a>, function in <a class="link" href="hkl-hkl-pseudoaxis-common-psi-private.html" title="hkl-pseudoaxis-common-psi-private">hkl-pseudoaxis-common-psi-private</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="hkl-hkl-pseudoaxis-common-q-private.html#hkl-engine-q2-new" title="hkl_engine_q2_new ()">hkl_engine_q2_new</a>, function in <a class="link" href="hkl-hkl-pseudoaxis-common-q-private.html" title="hkl-pseudoaxis-common-q-private">hkl-pseudoaxis-common-q-private</a>
+<a class="link" href="hkl-hkl-pseudoaxis-common-q-private.html#hkl-engine-q2-new" title="hkl_engine_q2_new ()">hkl_engine_q2_new</a>, function in <a class="link" href="hkl-hkl-pseudoaxis-common-q-private.html" title="hkl-pseudoaxis-common-q-private">hkl-pseudoaxis-common-q-private</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="hkl-hkl-pseudoaxis-common-q-private.html#hkl-engine-qper-qpar-new" title="hkl_engine_qper_qpar_new ()">hkl_engine_qper_qpar_new</a>, function in <a class="link" href="hkl-hkl-pseudoaxis-common-q-private.html" title="hkl-pseudoaxis-common-q-private">hkl-pseudoaxis-common-q-private</a>
+<a class="link" href="hkl-hkl-pseudoaxis-common-q-private.html#hkl-engine-qper-qpar-new" title="hkl_engine_qper_qpar_new ()">hkl_engine_qper_qpar_new</a>, function in <a class="link" href="hkl-hkl-pseudoaxis-common-q-private.html" title="hkl-pseudoaxis-common-q-private">hkl-pseudoaxis-common-q-private</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="hkl-hkl-pseudoaxis-common-q-private.html#hkl-engine-q-new" title="hkl_engine_q_new ()">hkl_engine_q_new</a>, function in <a class="link" href="hkl-hkl-pseudoaxis-common-q-private.html" title="hkl-pseudoaxis-common-q-private">hkl-pseudoaxis-common-q-private</a>
+<a class="link" href="hkl-hkl-pseudoaxis-common-q-private.html#hkl-engine-q-new" title="hkl_engine_q_new ()">hkl_engine_q_new</a>, function in <a class="link" href="hkl-hkl-pseudoaxis-common-q-private.html" title="hkl-pseudoaxis-common-q-private">hkl-pseudoaxis-common-q-private</a>
 </dt>
 <dd></dd>
 <dt>
@@ -562,19 +561,19 @@ hkl_engine_tth2_new, function in hkl-pseudoaxis-common-tth-private
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="hkl-hkl-factory-private.html#HklFactoryEngineListFunction" title="HklFactoryEngineListFunction ()">HklFactoryEngineListFunction</a>, user_function in <a class="link" href="hkl-hkl-factory-private.html" title="hkl-factory-private">hkl-factory-private</a>
+<a class="link" href="hkl-hkl-factory-private.html#HklFactoryEngineListFunction" title="HklFactoryEngineListFunction ()">HklFactoryEngineListFunction</a>, user_function in <a class="link" href="hkl-hkl-factory-private.html" title="hkl-factory-private">hkl-factory-private</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="hkl-hkl-factory-private.html#HklFactoryGeometryFunction" title="HklFactoryGeometryFunction ()">HklFactoryGeometryFunction</a>, user_function in <a class="link" href="hkl-hkl-factory-private.html" title="hkl-factory-private">hkl-factory-private</a>
+<a class="link" href="hkl-hkl-factory-private.html#HklFactoryGeometryFunction" title="HklFactoryGeometryFunction ()">HklFactoryGeometryFunction</a>, user_function in <a class="link" href="hkl-hkl-factory-private.html" title="hkl-factory-private">hkl-factory-private</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="hkl-noerr.html#fclose-noerr" title="fclose_noerr ()">fclose_noerr</a>, function in <a class="link" href="hkl-noerr.html" title="noerr">noerr</a>
+<a class="link" href="hkl-noerr.html#fclose-noerr" title="fclose_noerr ()">fclose_noerr</a>, function in <a class="link" href="hkl-noerr.html" title="noerr">noerr</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="hkl-hkl-parameter-private.html#fprintf" title="fprintf ()">fprintf</a>, function in <a class="link" href="hkl-hkl-parameter-private.html" title="hkl-parameter-private">hkl-parameter-private</a>
+<a class="link" href="hkl-hkl-parameter-private.html#fprintf" title="fprintf ()">fprintf</a>, function in <a class="link" href="hkl-hkl-parameter-private.html" title="hkl-parameter-private">hkl-parameter-private</a>
 </dt>
 <dd></dd>
 <dt>
@@ -599,23 +598,23 @@ hkl_engine_tth2_new, function in hkl-pseudoaxis-common-tth-private
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="hkl-hkl-geometry-private.html#HklGeometryListMultiplyFunction" title="HklGeometryListMultiplyFunction ()">HklGeometryListMultiplyFunction</a>, user_function in <a class="link" href="hkl-hkl-geometry-private.html" title="hkl-geometry-private">hkl-geometry-private</a>
+<a class="link" href="hkl-hkl-geometry-private.html#HklGeometryListMultiplyFunction" title="HklGeometryListMultiplyFunction ()">HklGeometryListMultiplyFunction</a>, user_function in <a class="link" href="hkl-hkl-geometry-private.html" title="hkl-geometry-private">hkl-geometry-private</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="hkl-hkl-geometry-private.html#hkl-geometry-add-holder" title="hkl_geometry_add_holder ()">hkl_geometry_add_holder</a>, function in <a class="link" href="hkl-hkl-geometry-private.html" title="hkl-geometry-private">hkl-geometry-private</a>
+<a class="link" href="hkl-hkl-geometry-private.html#hkl-geometry-add-holder" title="hkl_geometry_add_holder ()">hkl_geometry_add_holder</a>, function in <a class="link" href="hkl-hkl-geometry-private.html" title="hkl-geometry-private">hkl-geometry-private</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="hkl-hkl-geometry-private.html#hkl-geometry-closest-from-geometry-with-range" title="hkl_geometry_closest_from_geometry_with_range ()">hkl_geometry_closest_from_geometry_with_range</a>, function in <a class="link" href="hkl-hkl-geometry-private.html" title="hkl-geometry-private">hkl-geometry-private</a>
+<a class="link" href="hkl-hkl-geometry-private.html#hkl-geometry-closest-from-geometry-with-range" title="hkl_geometry_closest_from_geometry_with_range ()">hkl_geometry_closest_from_geometry_with_range</a>, function in <a class="link" href="hkl-hkl-geometry-private.html" title="hkl-geometry-private">hkl-geometry-private</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="hkl-hkl-geometry-private.html#hkl-geometry-distance" title="hkl_geometry_distance ()">hkl_geometry_distance</a>, function in <a class="link" href="hkl-hkl-geometry-private.html" title="hkl-geometry-private">hkl-geometry-private</a>
+<a class="link" href="hkl-hkl-geometry-private.html#hkl-geometry-distance" title="hkl_geometry_distance ()">hkl_geometry_distance</a>, function in <a class="link" href="hkl-hkl-geometry-private.html" title="hkl-geometry-private">hkl-geometry-private</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="hkl-hkl-geometry-private.html#hkl-geometry-distance-orthodromic" title="hkl_geometry_distance_orthodromic ()">hkl_geometry_distance_orthodromic</a>, function in <a class="link" href="hkl-hkl-geometry-private.html" title="hkl-geometry-private">hkl-geometry-private</a>
+<a class="link" href="hkl-hkl-geometry-private.html#hkl-geometry-distance-orthodromic" title="hkl_geometry_distance_orthodromic ()">hkl_geometry_distance_orthodromic</a>, function in <a class="link" href="hkl-hkl-geometry-private.html" title="hkl-geometry-private">hkl-geometry-private</a>
 </dt>
 <dd></dd>
 <dt>
@@ -623,23 +622,23 @@ hkl_engine_tth2_new, function in hkl-pseudoaxis-common-tth-private
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="hkl-hkl-geometry-private.html#hkl-geometry-get-axis-by-name" title="hkl_geometry_get_axis_by_name ()">hkl_geometry_get_axis_by_name</a>, function in <a class="link" href="hkl-hkl-geometry-private.html" title="hkl-geometry-private">hkl-geometry-private</a>
+<a class="link" href="hkl-hkl-geometry-private.html#hkl-geometry-get-axis-by-name" title="hkl_geometry_get_axis_by_name ()">hkl_geometry_get_axis_by_name</a>, function in <a class="link" href="hkl-hkl-geometry-private.html" title="hkl-geometry-private">hkl-geometry-private</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="hkl-hkl-geometry-private.html#hkl-geometry-get-axis-idx-by-name" title="hkl_geometry_get_axis_idx_by_name ()">hkl_geometry_get_axis_idx_by_name</a>, function in <a class="link" href="hkl-hkl-geometry-private.html" title="hkl-geometry-private">hkl-geometry-private</a>
+<a class="link" href="hkl-hkl-geometry-private.html#hkl-geometry-get-axis-idx-by-name" title="hkl_geometry_get_axis_idx_by_name ()">hkl_geometry_get_axis_idx_by_name</a>, function in <a class="link" href="hkl-hkl-geometry-private.html" title="hkl-geometry-private">hkl-geometry-private</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="hkl-hkl-geometry-private.html#hkl-geometry-init-geometry" title="hkl_geometry_init_geometry ()">hkl_geometry_init_geometry</a>, function in <a class="link" href="hkl-hkl-geometry-private.html" title="hkl-geometry-private">hkl-geometry-private</a>
+<a class="link" href="hkl-hkl-geometry-private.html#hkl-geometry-init-geometry" title="hkl_geometry_init_geometry ()">hkl_geometry_init_geometry</a>, function in <a class="link" href="hkl-hkl-geometry-private.html" title="hkl-geometry-private">hkl-geometry-private</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="hkl-hkl-geometry-private.html#hkl-geometry-is-valid" title="hkl_geometry_is_valid ()">hkl_geometry_is_valid</a>, function in <a class="link" href="hkl-hkl-geometry-private.html" title="hkl-geometry-private">hkl-geometry-private</a>
+<a class="link" href="hkl-hkl-geometry-private.html#hkl-geometry-is-valid" title="hkl_geometry_is_valid ()">hkl_geometry_is_valid</a>, function in <a class="link" href="hkl-hkl-geometry-private.html" title="hkl-geometry-private">hkl-geometry-private</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="hkl-hkl-geometry-private.html#hkl-geometry-list-add" title="hkl_geometry_list_add ()">hkl_geometry_list_add</a>, function in <a class="link" href="hkl-hkl-geometry-private.html" title="hkl-geometry-private">hkl-geometry-private</a>
+<a class="link" href="hkl-hkl-geometry-private.html#hkl-geometry-list-add" title="hkl_geometry_list_add ()">hkl_geometry_list_add</a>, function in <a class="link" href="hkl-hkl-geometry-private.html" title="hkl-geometry-private">hkl-geometry-private</a>
 </dt>
 <dd></dd>
 <dt>
@@ -647,55 +646,55 @@ hkl_engine_tth2_new, function in hkl-pseudoaxis-common-tth-private
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="hkl-hkl-geometry-private.html#hkl-geometry-list-fprintf" title="hkl_geometry_list_fprintf ()">hkl_geometry_list_fprintf</a>, function in <a class="link" href="hkl-hkl-geometry-private.html" title="hkl-geometry-private">hkl-geometry-private</a>
+<a class="link" href="hkl-hkl-geometry-private.html#hkl-geometry-list-fprintf" title="hkl_geometry_list_fprintf ()">hkl_geometry_list_fprintf</a>, function in <a class="link" href="hkl-hkl-geometry-private.html" title="hkl-geometry-private">hkl-geometry-private</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="hkl-hkl-geometry-private.html#hkl-geometry-list-item-free" title="hkl_geometry_list_item_free ()">hkl_geometry_list_item_free</a>, function in <a class="link" href="hkl-hkl-geometry-private.html" title="hkl-geometry-private">hkl-geometry-private</a>
+<a class="link" href="hkl-hkl-geometry-private.html#hkl-geometry-list-item-free" title="hkl_geometry_list_item_free ()">hkl_geometry_list_item_free</a>, function in <a class="link" href="hkl-hkl-geometry-private.html" title="hkl-geometry-private">hkl-geometry-private</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="hkl-hkl-geometry-private.html#hkl-geometry-list-item-new" title="hkl_geometry_list_item_new ()">hkl_geometry_list_item_new</a>, function in <a class="link" href="hkl-hkl-geometry-private.html" title="hkl-geometry-private">hkl-geometry-private</a>
+<a class="link" href="hkl-hkl-geometry-private.html#hkl-geometry-list-item-new" title="hkl_geometry_list_item_new ()">hkl_geometry_list_item_new</a>, function in <a class="link" href="hkl-hkl-geometry-private.html" title="hkl-geometry-private">hkl-geometry-private</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="hkl-hkl-geometry-private.html#hkl-geometry-list-item-new-copy" title="hkl_geometry_list_item_new_copy ()">hkl_geometry_list_item_new_copy</a>, function in <a class="link" href="hkl-hkl-geometry-private.html" title="hkl-geometry-private">hkl-geometry-private</a>
+<a class="link" href="hkl-hkl-geometry-private.html#hkl-geometry-list-item-new-copy" title="hkl_geometry_list_item_new_copy ()">hkl_geometry_list_item_new_copy</a>, function in <a class="link" href="hkl-hkl-geometry-private.html" title="hkl-geometry-private">hkl-geometry-private</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="hkl-hkl-geometry-private.html#hkl-geometry-list-multiply" title="hkl_geometry_list_multiply ()">hkl_geometry_list_multiply</a>, function in <a class="link" href="hkl-hkl-geometry-private.html" title="hkl-geometry-private">hkl-geometry-private</a>
+<a class="link" href="hkl-hkl-geometry-private.html#hkl-geometry-list-multiply" title="hkl_geometry_list_multiply ()">hkl_geometry_list_multiply</a>, function in <a class="link" href="hkl-hkl-geometry-private.html" title="hkl-geometry-private">hkl-geometry-private</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="hkl-hkl-geometry-private.html#hkl-geometry-list-multiply-from-range" title="hkl_geometry_list_multiply_from_range ()">hkl_geometry_list_multiply_from_range</a>, function in <a class="link" href="hkl-hkl-geometry-private.html" title="hkl-geometry-private">hkl-geometry-private</a>
+<a class="link" href="hkl-hkl-geometry-private.html#hkl-geometry-list-multiply-from-range" title="hkl_geometry_list_multiply_from_range ()">hkl_geometry_list_multiply_from_range</a>, function in <a class="link" href="hkl-hkl-geometry-private.html" title="hkl-geometry-private">hkl-geometry-private</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="hkl-hkl-geometry-private.html#hkl-geometry-list-new" title="hkl_geometry_list_new ()">hkl_geometry_list_new</a>, function in <a class="link" href="hkl-hkl-geometry-private.html" title="hkl-geometry-private">hkl-geometry-private</a>
+<a class="link" href="hkl-hkl-geometry-private.html#hkl-geometry-list-new" title="hkl_geometry_list_new ()">hkl_geometry_list_new</a>, function in <a class="link" href="hkl-hkl-geometry-private.html" title="hkl-geometry-private">hkl-geometry-private</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="hkl-hkl-geometry-private.html#hkl-geometry-list-new-copy" title="hkl_geometry_list_new_copy ()">hkl_geometry_list_new_copy</a>, function in <a class="link" href="hkl-hkl-geometry-private.html" title="hkl-geometry-private">hkl-geometry-private</a>
+<a class="link" href="hkl-hkl-geometry-private.html#hkl-geometry-list-new-copy" title="hkl_geometry_list_new_copy ()">hkl_geometry_list_new_copy</a>, function in <a class="link" href="hkl-hkl-geometry-private.html" title="hkl-geometry-private">hkl-geometry-private</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="hkl-hkl-geometry-private.html#hkl-geometry-list-remove-invalid" title="hkl_geometry_list_remove_invalid ()">hkl_geometry_list_remove_invalid</a>, function in <a class="link" href="hkl-hkl-geometry-private.html" title="hkl-geometry-private">hkl-geometry-private</a>
+<a class="link" href="hkl-hkl-geometry-private.html#hkl-geometry-list-remove-invalid" title="hkl_geometry_list_remove_invalid ()">hkl_geometry_list_remove_invalid</a>, function in <a class="link" href="hkl-hkl-geometry-private.html" title="hkl-geometry-private">hkl-geometry-private</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="hkl-hkl-geometry-private.html#hkl-geometry-list-reset" title="hkl_geometry_list_reset ()">hkl_geometry_list_reset</a>, function in <a class="link" href="hkl-hkl-geometry-private.html" title="hkl-geometry-private">hkl-geometry-private</a>
+<a class="link" href="hkl-hkl-geometry-private.html#hkl-geometry-list-reset" title="hkl_geometry_list_reset ()">hkl_geometry_list_reset</a>, function in <a class="link" href="hkl-hkl-geometry-private.html" title="hkl-geometry-private">hkl-geometry-private</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="hkl-hkl-geometry-private.html#hkl-geometry-list-sort" title="hkl_geometry_list_sort ()">hkl_geometry_list_sort</a>, function in <a class="link" href="hkl-hkl-geometry-private.html" title="hkl-geometry-private">hkl-geometry-private</a>
+<a class="link" href="hkl-hkl-geometry-private.html#hkl-geometry-list-sort" title="hkl_geometry_list_sort ()">hkl_geometry_list_sort</a>, function in <a class="link" href="hkl-hkl-geometry-private.html" title="hkl-geometry-private">hkl-geometry-private</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="hkl-hkl-geometry-private.html#hkl-geometry-new" title="hkl_geometry_new ()">hkl_geometry_new</a>, function in <a class="link" href="hkl-hkl-geometry-private.html" title="hkl-geometry-private">hkl-geometry-private</a>
+<a class="link" href="hkl-hkl-geometry-private.html#hkl-geometry-new" title="hkl_geometry_new ()">hkl_geometry_new</a>, function in <a class="link" href="hkl-hkl-geometry-private.html" title="hkl-geometry-private">hkl-geometry-private</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="hkl-hkl-geometry-private.html#hkl-geometry-update" title="hkl_geometry_update ()">hkl_geometry_update</a>, function in <a class="link" href="hkl-hkl-geometry-private.html" title="hkl-geometry-private">hkl-geometry-private</a>
+<a class="link" href="hkl-hkl-geometry-private.html#hkl-geometry-update" title="hkl_geometry_update ()">hkl_geometry_update</a>, function in <a class="link" href="hkl-hkl-geometry-private.html" title="hkl-geometry-private">hkl-geometry-private</a>
 </dt>
 <dd></dd>
 <dt>
@@ -703,7 +702,7 @@ hkl_engine_tth2_new, function in hkl-pseudoaxis-common-tth-private
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="hkl-hkl-geometry-private.html#g-quark-from-static-string" title="g_quark_from_static_string ()">g_quark_from_static_string</a>, function in <a class="link" href="hkl-hkl-sample-private.html" title="hkl-sample-private">hkl-sample-private</a>
+<a class="link" href="hkl-hkl-geometry-private.html#g-quark-from-static-string" title="g_quark_from_static_string ()">g_quark_from_static_string</a>, function in <a class="link" href="hkl-hkl-sample-private.html" title="hkl-sample-private">hkl-sample-private</a>
 </dt>
 <dd></dd>
 <a name="idxH"></a><h3 class="title">H</h3>
@@ -776,31 +775,31 @@ hash_u32, function in hash
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="hkl-hkl-geometry-private.html#hkl-holder-add-rotation-axis" title="hkl_holder_add_rotation_axis ()">hkl_holder_add_rotation_axis</a>, function in <a class="link" href="hkl-hkl-geometry-private.html" title="hkl-geometry-private">hkl-geometry-private</a>
+<a class="link" href="hkl-hkl-geometry-private.html#HklHolderConfig" title="struct HklHolderConfig">HklHolderConfig</a>, struct in <a class="link" href="hkl-hkl-geometry-private.html" title="hkl-geometry-private">hkl-geometry-private</a>
 </dt>
 <dd></dd>
 <dt>
-htable_add, function in htable
+<a class="link" href="hkl-hkl-geometry-private.html#hkl-holder-add-rotation-axis" title="hkl_holder_add_rotation_axis ()">hkl_holder_add_rotation_axis</a>, function in <a class="link" href="hkl-hkl-geometry-private.html" title="hkl-geometry-private">hkl-geometry-private</a>
 </dt>
 <dd></dd>
 <dt>
-htable_clear, function in htable
+htable, struct in htable
 </dt>
 <dd></dd>
 <dt>
-HTABLE_DEFINE_TYPE, macro in htable_type
+htable_add, function in htable
 </dt>
 <dd></dd>
 <dt>
-htable_del, function in htable
+htable_clear, function in htable
 </dt>
 <dd></dd>
 <dt>
-htable_delval, function in htable
+HTABLE_DEFINE_TYPE, macro in htable_type
 </dt>
 <dd></dd>
 <dt>
-htable_first, function in htable
+htable_del, function in htable
 </dt>
 <dd></dd>
 <dt>
@@ -816,11 +815,11 @@ HTABLE_INITIALIZER, macro in htable
 </dt>
 <dd></dd>
 <dt>
-HTABLE_KTYPE, macro in htable_type
+htable_iter, struct in htable
 </dt>
 <dd></dd>
 <dt>
-htable_next, function in htable
+HTABLE_KTYPE, macro in htable_type
 </dt>
 <dd></dd>
 <dt>
@@ -841,131 +840,131 @@ htable_rehash, function in htable
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="hkl-hkl-interval-private.html#hkl-interval-acos" title="hkl_interval_acos ()">hkl_interval_acos</a>, function in <a class="link" href="hkl-hkl-interval-private.html" title="hkl-interval-private">hkl-interval-private</a>
+<a class="link" href="hkl-hkl-interval-private.html#hkl-interval-acos" title="hkl_interval_acos ()">hkl_interval_acos</a>, function in <a class="link" href="hkl-hkl-interval-private.html" title="hkl-interval-private">hkl-interval-private</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="hkl-hkl-interval-private.html#hkl-interval-angle-restrict-symm" title="hkl_interval_angle_restrict_symm ()">hkl_interval_angle_restrict_symm</a>, function in <a class="link" href="hkl-hkl-interval-private.html" title="hkl-interval-private">hkl-interval-private</a>
+<a class="link" href="hkl-hkl-interval-private.html#hkl-interval-angle-restrict-symm" title="hkl_interval_angle_restrict_symm ()">hkl_interval_angle_restrict_symm</a>, function in <a class="link" href="hkl-hkl-interval-private.html" title="hkl-interval-private">hkl-interval-private</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="hkl-hkl-interval-private.html#hkl-interval-asin" title="hkl_interval_asin ()">hkl_interval_asin</a>, function in <a class="link" href="hkl-hkl-interval-private.html" title="hkl-interval-private">hkl-interval-private</a>
+<a class="link" href="hkl-hkl-interval-private.html#hkl-interval-asin" title="hkl_interval_asin ()">hkl_interval_asin</a>, function in <a class="link" href="hkl-hkl-interval-private.html" title="hkl-interval-private">hkl-interval-private</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="hkl-hkl-interval-private.html#hkl-interval-atan" title="hkl_interval_atan ()">hkl_interval_atan</a>, function in <a class="link" href="hkl-hkl-interval-private.html" title="hkl-interval-private">hkl-interval-private</a>
+<a class="link" href="hkl-hkl-interval-private.html#hkl-interval-atan" title="hkl_interval_atan ()">hkl_interval_atan</a>, function in <a class="link" href="hkl-hkl-interval-private.html" title="hkl-interval-private">hkl-interval-private</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="hkl-hkl-interval-private.html#hkl-interval-cmp" title="hkl_interval_cmp ()">hkl_interval_cmp</a>, function in <a class="link" href="hkl-hkl-interval-private.html" title="hkl-interval-private">hkl-interval-private</a>
+<a class="link" href="hkl-hkl-interval-private.html#hkl-interval-cmp" title="hkl_interval_cmp ()">hkl_interval_cmp</a>, function in <a class="link" href="hkl-hkl-interval-private.html" title="hkl-interval-private">hkl-interval-private</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="hkl-hkl-interval-private.html#hkl-interval-contain-zero" title="hkl_interval_contain_zero ()">hkl_interval_contain_zero</a>, function in <a class="link" href="hkl-hkl-interval-private.html" title="hkl-interval-private">hkl-interval-private</a>
+<a class="link" href="hkl-hkl-interval-private.html#hkl-interval-contain-zero" title="hkl_interval_contain_zero ()">hkl_interval_contain_zero</a>, function in <a class="link" href="hkl-hkl-interval-private.html" title="hkl-interval-private">hkl-interval-private</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="hkl-hkl-interval-private.html#hkl-interval-cos" title="hkl_interval_cos ()">hkl_interval_cos</a>, function in <a class="link" href="hkl-hkl-interval-private.html" title="hkl-interval-private">hkl-interval-private</a>
+<a class="link" href="hkl-hkl-interval-private.html#hkl-interval-cos" title="hkl_interval_cos ()">hkl_interval_cos</a>, function in <a class="link" href="hkl-hkl-interval-private.html" title="hkl-interval-private">hkl-interval-private</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="hkl-hkl-interval-private.html#hkl-interval-divides-double" title="hkl_interval_divides_double ()">hkl_interval_divides_double</a>, function in <a class="link" href="hkl-hkl-interval-private.html" title="hkl-interval-private">hkl-interval-private</a>
+<a class="link" href="hkl-hkl-interval-private.html#hkl-interval-divides-double" title="hkl_interval_divides_double ()">hkl_interval_divides_double</a>, function in <a class="link" href="hkl-hkl-interval-private.html" title="hkl-interval-private">hkl-interval-private</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="hkl-hkl-interval-private.html#hkl-interval-dup" title="hkl_interval_dup ()">hkl_interval_dup</a>, function in <a class="link" href="hkl-hkl-interval-private.html" title="hkl-interval-private">hkl-interval-private</a>
+<a class="link" href="hkl-hkl-interval-private.html#hkl-interval-dup" title="hkl_interval_dup ()">hkl_interval_dup</a>, function in <a class="link" href="hkl-hkl-interval-private.html" title="hkl-interval-private">hkl-interval-private</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="hkl-hkl-interval-private.html#hkl-interval-free" title="hkl_interval_free ()">hkl_interval_free</a>, function in <a class="link" href="hkl-hkl-interval-private.html" title="hkl-interval-private">hkl-interval-private</a>
+<a class="link" href="hkl-hkl-interval-private.html#hkl-interval-free" title="hkl_interval_free ()">hkl_interval_free</a>, function in <a class="link" href="hkl-hkl-interval-private.html" title="hkl-interval-private">hkl-interval-private</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="hkl-hkl-interval-private.html#hkl-interval-length" title="hkl_interval_length ()">hkl_interval_length</a>, function in <a class="link" href="hkl-hkl-interval-private.html" title="hkl-interval-private">hkl-interval-private</a>
+<a class="link" href="hkl-hkl-interval-private.html#hkl-interval-length" title="hkl_interval_length ()">hkl_interval_length</a>, function in <a class="link" href="hkl-hkl-interval-private.html" title="hkl-interval-private">hkl-interval-private</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="hkl-hkl-interval-private.html#hkl-interval-minus-double" title="hkl_interval_minus_double ()">hkl_interval_minus_double</a>, function in <a class="link" href="hkl-hkl-interval-private.html" title="hkl-interval-private">hkl-interval-private</a>
+<a class="link" href="hkl-hkl-interval-private.html#hkl-interval-minus-double" title="hkl_interval_minus_double ()">hkl_interval_minus_double</a>, function in <a class="link" href="hkl-hkl-interval-private.html" title="hkl-interval-private">hkl-interval-private</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="hkl-hkl-interval-private.html#hkl-interval-minus-interval" title="hkl_interval_minus_interval ()">hkl_interval_minus_interval</a>, function in <a class="link" href="hkl-hkl-interval-private.html" title="hkl-interval-private">hkl-interval-private</a>
+<a class="link" href="hkl-hkl-interval-private.html#hkl-interval-minus-interval" title="hkl_interval_minus_interval ()">hkl_interval_minus_interval</a>, function in <a class="link" href="hkl-hkl-interval-private.html" title="hkl-interval-private">hkl-interval-private</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="hkl-hkl-interval-private.html#hkl-interval-plus-double" title="hkl_interval_plus_double ()">hkl_interval_plus_double</a>, function in <a class="link" href="hkl-hkl-interval-private.html" title="hkl-interval-private">hkl-interval-private</a>
+<a class="link" href="hkl-hkl-interval-private.html#hkl-interval-plus-double" title="hkl_interval_plus_double ()">hkl_interval_plus_double</a>, function in <a class="link" href="hkl-hkl-interval-private.html" title="hkl-interval-private">hkl-interval-private</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="hkl-hkl-interval-private.html#hkl-interval-plus-interval" title="hkl_interval_plus_interval ()">hkl_interval_plus_interval</a>, function in <a class="link" href="hkl-hkl-interval-private.html" title="hkl-interval-private">hkl-interval-private</a>
+<a class="link" href="hkl-hkl-interval-private.html#hkl-interval-plus-interval" title="hkl_interval_plus_interval ()">hkl_interval_plus_interval</a>, function in <a class="link" href="hkl-hkl-interval-private.html" title="hkl-interval-private">hkl-interval-private</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="hkl-hkl-interval-private.html#hkl-interval-sin" title="hkl_interval_sin ()">hkl_interval_sin</a>, function in <a class="link" href="hkl-hkl-interval-private.html" title="hkl-interval-private">hkl-interval-private</a>
+<a class="link" href="hkl-hkl-interval-private.html#hkl-interval-sin" title="hkl_interval_sin ()">hkl_interval_sin</a>, function in <a class="link" href="hkl-hkl-interval-private.html" title="hkl-interval-private">hkl-interval-private</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="hkl-hkl-interval-private.html#hkl-interval-tan" title="hkl_interval_tan ()">hkl_interval_tan</a>, function in <a class="link" href="hkl-hkl-interval-private.html" title="hkl-interval-private">hkl-interval-private</a>
+<a class="link" href="hkl-hkl-interval-private.html#hkl-interval-tan" title="hkl_interval_tan ()">hkl_interval_tan</a>, function in <a class="link" href="hkl-hkl-interval-private.html" title="hkl-interval-private">hkl-interval-private</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="hkl-hkl-interval-private.html#hkl-interval-times-double" title="hkl_interval_times_double ()">hkl_interval_times_double</a>, function in <a class="link" href="hkl-hkl-interval-private.html" title="hkl-interval-private">hkl-interval-private</a>
+<a class="link" href="hkl-hkl-interval-private.html#hkl-interval-times-double" title="hkl_interval_times_double ()">hkl_interval_times_double</a>, function in <a class="link" href="hkl-hkl-interval-private.html" title="hkl-interval-private">hkl-interval-private</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="hkl-hkl-interval-private.html#hkl-interval-times-interval" title="hkl_interval_times_interval ()">hkl_interval_times_interval</a>, function in <a class="link" href="hkl-hkl-interval-private.html" title="hkl-interval-private">hkl-interval-private</a>
+<a class="link" href="hkl-hkl-interval-private.html#hkl-interval-times-interval" title="hkl_interval_times_interval ()">hkl_interval_times_interval</a>, function in <a class="link" href="hkl-hkl-interval-private.html" title="hkl-interval-private">hkl-interval-private</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="hkl-str.html#isalnum" title="isalnum ()">isalnum</a>, function in <a class="link" href="hkl-str.html" title="str">str</a>
+<a class="link" href="hkl-str.html#isalnum" title="isalnum ()">isalnum</a>, function in <a class="link" href="hkl-str.html" title="str">str</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="hkl-str.html#isalpha" title="isalpha ()">isalpha</a>, function in <a class="link" href="hkl-str.html" title="str">str</a>
+<a class="link" href="hkl-str.html#isalpha" title="isalpha ()">isalpha</a>, function in <a class="link" href="hkl-str.html" title="str">str</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="hkl-str.html#isascii" title="isascii ()">isascii</a>, function in <a class="link" href="hkl-str.html" title="str">str</a>
+<a class="link" href="hkl-str.html#isascii" title="isascii ()">isascii</a>, function in <a class="link" href="hkl-str.html" title="str">str</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="hkl-str.html#isblank" title="isblank ()">isblank</a>, function in <a class="link" href="hkl-str.html" title="str">str</a>
+<a class="link" href="hkl-str.html#isblank" title="isblank ()">isblank</a>, function in <a class="link" href="hkl-str.html" title="str">str</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="hkl-str.html#iscntrl" title="iscntrl ()">iscntrl</a>, function in <a class="link" href="hkl-str.html" title="str">str</a>
+<a class="link" href="hkl-str.html#iscntrl" title="iscntrl ()">iscntrl</a>, function in <a class="link" href="hkl-str.html" title="str">str</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="hkl-str.html#isdigit" title="isdigit ()">isdigit</a>, function in <a class="link" href="hkl-str.html" title="str">str</a>
+<a class="link" href="hkl-str.html#isdigit" title="isdigit ()">isdigit</a>, function in <a class="link" href="hkl-str.html" title="str">str</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="hkl-str.html#isgraph" title="isgraph ()">isgraph</a>, function in <a class="link" href="hkl-str.html" title="str">str</a>
+<a class="link" href="hkl-str.html#isgraph" title="isgraph ()">isgraph</a>, function in <a class="link" href="hkl-str.html" title="str">str</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="hkl-str.html#islower" title="islower ()">islower</a>, function in <a class="link" href="hkl-str.html" title="str">str</a>
+<a class="link" href="hkl-str.html#islower" title="islower ()">islower</a>, function in <a class="link" href="hkl-str.html" title="str">str</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="hkl-str.html#isprint" title="isprint ()">isprint</a>, function in <a class="link" href="hkl-str.html" title="str">str</a>
+<a class="link" href="hkl-str.html#isprint" title="isprint ()">isprint</a>, function in <a class="link" href="hkl-str.html" title="str">str</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="hkl-str.html#ispunct" title="ispunct ()">ispunct</a>, function in <a class="link" href="hkl-str.html" title="str">str</a>
+<a class="link" href="hkl-str.html#ispunct" title="ispunct ()">ispunct</a>, function in <a class="link" href="hkl-str.html" title="str">str</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="hkl-str.html#isspace" title="isspace ()">isspace</a>, function in <a class="link" href="hkl-str.html" title="str">str</a>
+<a class="link" href="hkl-str.html#isspace" title="isspace ()">isspace</a>, function in <a class="link" href="hkl-str.html" title="str">str</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="hkl-str.html#isupper" title="isupper ()">isupper</a>, function in <a class="link" href="hkl-str.html" title="str">str</a>
+<a class="link" href="hkl-str.html#isupper" title="isupper ()">isupper</a>, function in <a class="link" href="hkl-str.html" title="str">str</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="hkl-str.html#isxdigit" title="isxdigit ()">isxdigit</a>, function in <a class="link" href="hkl-str.html" title="str">str</a>
+<a class="link" href="hkl-str.html#isxdigit" title="isxdigit ()">isxdigit</a>, function in <a class="link" href="hkl-str.html" title="str">str</a>
 </dt>
 <dd></dd>
 <dt>
@@ -974,7 +973,7 @@ htable_rehash, function in htable
 <dd></dd>
 <a name="idxK"></a><h3 class="title">K</h3>
 <dt>
-<a class="link" href="hkl-hkl-pseudoaxis-common-eulerians-private.html#kappa-2-kappap" title="kappa_2_kappap ()">kappa_2_kappap</a>, function in <a class="link" href="hkl-hkl-pseudoaxis-common-eulerians-private.html" title="hkl-pseudoaxis-common-eulerians-private">hkl-pseudoaxis-common-eulerians-private</a>
+<a class="link" href="hkl-hkl-pseudoaxis-common-eulerians-private.html#kappa-2-kappap" title="kappa_2_kappap ()">kappa_2_kappap</a>, function in <a class="link" href="hkl-hkl-pseudoaxis-common-eulerians-private.html" title="hkl-pseudoaxis-common-eulerians-private">hkl-pseudoaxis-common-eulerians-private</a>
 </dt>
 <dd></dd>
 <a name="idxL"></a><h3 class="title">L</h3>
@@ -991,15 +990,15 @@ htable_rehash, function in htable
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="hkl-hkl-lattice-private.html#hkl-lattice-fprintf" title="hkl_lattice_fprintf ()">hkl_lattice_fprintf</a>, function in <a class="link" href="hkl-hkl-lattice-private.html" title="hkl-lattice-private">hkl-lattice-private</a>
+<a class="link" href="hkl-hkl-lattice-private.html#hkl-lattice-fprintf" title="hkl_lattice_fprintf ()">hkl_lattice_fprintf</a>, function in <a class="link" href="hkl-hkl-lattice-private.html" title="hkl-lattice-private">hkl-lattice-private</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="hkl-hkl-lattice-private.html#hkl-lattice-lattice-set" title="hkl_lattice_lattice_set ()">hkl_lattice_lattice_set</a>, function in <a class="link" href="hkl-hkl-lattice-private.html" title="hkl-lattice-private">hkl-lattice-private</a>
+<a class="link" href="hkl-hkl-lattice-private.html#hkl-lattice-lattice-set" title="hkl_lattice_lattice_set ()">hkl_lattice_lattice_set</a>, function in <a class="link" href="hkl-hkl-lattice-private.html" title="hkl-lattice-private">hkl-lattice-private</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="hkl-hkl-lattice-private.html#hkl-lattice-randomize" title="hkl_lattice_randomize ()">hkl_lattice_randomize</a>, function in <a class="link" href="hkl-hkl-lattice-private.html" title="hkl-lattice-private">hkl-lattice-private</a>
+<a class="link" href="hkl-hkl-lattice-private.html#hkl-lattice-randomize" title="hkl_lattice_randomize ()">hkl_lattice_randomize</a>, function in <a class="link" href="hkl-hkl-lattice-private.html" title="hkl-lattice-private">hkl-lattice-private</a>
 </dt>
 <dd></dd>
 <dt>
@@ -1019,11 +1018,11 @@ htable_rehash, function in htable
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="hkl-list.html#list-check" title="list_check ()">list_check</a>, function in <a class="link" href="hkl-list.html" title="list">list</a>
+<a class="link" href="hkl-list.html#list-check" title="list_check ()">list_check</a>, function in <a class="link" href="hkl-list.html" title="list">list</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="hkl-list.html#list-check-node" title="list_check_node ()">list_check_node</a>, function in <a class="link" href="hkl-list.html" title="list">list</a>
+<a class="link" href="hkl-list.html#list-check-node" title="list_check_node ()">list_check_node</a>, function in <a class="link" href="hkl-list.html" title="list">list</a>
 </dt>
 <dd></dd>
 <dt>
@@ -1083,6 +1082,10 @@ htable_rehash, function in htable
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="hkl-list.html#list-head" title="struct list_head">list_head</a>, struct in <a class="link" href="hkl-list.html" title="list">list</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="hkl-list.html#LIST-HEAD:CAPS" title="LIST_HEAD()">LIST_HEAD</a>, macro in <a class="link" href="hkl-list.html" title="list">list</a>
 </dt>
 <dd></dd>
@@ -1103,6 +1106,10 @@ htable_rehash, function in htable
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="hkl-list.html#list-node" title="struct list_node">list_node</a>, struct in <a class="link" href="hkl-list.html" title="list">list</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="hkl-list.html#list-off-" title="list_off_()">list_off_</a>, macro in <a class="link" href="hkl-list.html" title="list">list</a>
 </dt>
 <dd></dd>
@@ -1148,47 +1155,47 @@ htable_rehash, function in htable
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="hkl-hkl-matrix-private.html#hkl-matrix-det" title="hkl_matrix_det ()">hkl_matrix_det</a>, function in <a class="link" href="hkl-hkl-matrix-private.html" title="hkl-matrix-private">hkl-matrix-private</a>
+<a class="link" href="hkl-hkl-matrix-private.html#hkl-matrix-det" title="hkl_matrix_det ()">hkl_matrix_det</a>, function in <a class="link" href="hkl-hkl-matrix-private.html" title="hkl-matrix-private">hkl-matrix-private</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="hkl-hkl-matrix-private.html#hkl-matrix-dup" title="hkl_matrix_dup ()">hkl_matrix_dup</a>, function in <a class="link" href="hkl-hkl-matrix-private.html" title="hkl-matrix-private">hkl-matrix-private</a>
+<a class="link" href="hkl-hkl-matrix-private.html#hkl-matrix-dup" title="hkl_matrix_dup ()">hkl_matrix_dup</a>, function in <a class="link" href="hkl-hkl-matrix-private.html" title="hkl-matrix-private">hkl-matrix-private</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="hkl-hkl-matrix-private.html#hkl-matrix-fprintf" title="hkl_matrix_fprintf ()">hkl_matrix_fprintf</a>, function in <a class="link" href="hkl-hkl-matrix-private.html" title="hkl-matrix-private">hkl-matrix-private</a>
+<a class="link" href="hkl-hkl-matrix-private.html#hkl-matrix-fprintf" title="hkl_matrix_fprintf ()">hkl_matrix_fprintf</a>, function in <a class="link" href="hkl-hkl-matrix-private.html" title="hkl-matrix-private">hkl-matrix-private</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="hkl-hkl-matrix-private.html#hkl-matrix-init-from-euler" title="hkl_matrix_init_from_euler ()">hkl_matrix_init_from_euler</a>, function in <a class="link" href="hkl-hkl-matrix-private.html" title="hkl-matrix-private">hkl-matrix-private</a>
+<a class="link" href="hkl-hkl-matrix-private.html#hkl-matrix-init-from-euler" title="hkl_matrix_init_from_euler ()">hkl_matrix_init_from_euler</a>, function in <a class="link" href="hkl-hkl-matrix-private.html" title="hkl-matrix-private">hkl-matrix-private</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="hkl-hkl-matrix-private.html#hkl-matrix-init-from-two-vector" title="hkl_matrix_init_from_two_vector ()">hkl_matrix_init_from_two_vector</a>, function in <a class="link" href="hkl-hkl-matrix-private.html" title="hkl-matrix-private">hkl-matrix-private</a>
+<a class="link" href="hkl-hkl-matrix-private.html#hkl-matrix-init-from-two-vector" title="hkl_matrix_init_from_two_vector ()">hkl_matrix_init_from_two_vector</a>, function in <a class="link" href="hkl-hkl-matrix-private.html" title="hkl-matrix-private">hkl-matrix-private</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="hkl-hkl-matrix-private.html#hkl-matrix-is-null" title="hkl_matrix_is_null ()">hkl_matrix_is_null</a>, function in <a class="link" href="hkl-hkl-matrix-private.html" title="hkl-matrix-private">hkl-matrix-private</a>
+<a class="link" href="hkl-hkl-matrix-private.html#hkl-matrix-is-null" title="hkl_matrix_is_null ()">hkl_matrix_is_null</a>, function in <a class="link" href="hkl-hkl-matrix-private.html" title="hkl-matrix-private">hkl-matrix-private</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="hkl-hkl-matrix-private.html#hkl-matrix-matrix-set" title="hkl_matrix_matrix_set ()">hkl_matrix_matrix_set</a>, function in <a class="link" href="hkl-hkl-matrix-private.html" title="hkl-matrix-private">hkl-matrix-private</a>
+<a class="link" href="hkl-hkl-matrix-private.html#hkl-matrix-matrix-set" title="hkl_matrix_matrix_set ()">hkl_matrix_matrix_set</a>, function in <a class="link" href="hkl-hkl-matrix-private.html" title="hkl-matrix-private">hkl-matrix-private</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="hkl-hkl-matrix-private.html#hkl-matrix-solve" title="hkl_matrix_solve ()">hkl_matrix_solve</a>, function in <a class="link" href="hkl-hkl-matrix-private.html" title="hkl-matrix-private">hkl-matrix-private</a>
+<a class="link" href="hkl-hkl-matrix-private.html#hkl-matrix-solve" title="hkl_matrix_solve ()">hkl_matrix_solve</a>, function in <a class="link" href="hkl-hkl-matrix-private.html" title="hkl-matrix-private">hkl-matrix-private</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="hkl-hkl-matrix-private.html#hkl-matrix-times-vector" title="hkl_matrix_times_vector ()">hkl_matrix_times_vector</a>, function in <a class="link" href="hkl-hkl-matrix-private.html" title="hkl-matrix-private">hkl-matrix-private</a>
+<a class="link" href="hkl-hkl-matrix-private.html#hkl-matrix-times-vector" title="hkl_matrix_times_vector ()">hkl_matrix_times_vector</a>, function in <a class="link" href="hkl-hkl-matrix-private.html" title="hkl-matrix-private">hkl-matrix-private</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="hkl-hkl-matrix-private.html#hkl-matrix-to-euler" title="hkl_matrix_to_euler ()">hkl_matrix_to_euler</a>, function in <a class="link" href="hkl-hkl-matrix-private.html" title="hkl-matrix-private">hkl-matrix-private</a>
+<a class="link" href="hkl-hkl-matrix-private.html#hkl-matrix-to-euler" title="hkl_matrix_to_euler ()">hkl_matrix_to_euler</a>, function in <a class="link" href="hkl-hkl-matrix-private.html" title="hkl-matrix-private">hkl-matrix-private</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="hkl-hkl-matrix-private.html#hkl-matrix-transpose" title="hkl_matrix_transpose ()">hkl_matrix_transpose</a>, function in <a class="link" href="hkl-hkl-matrix-private.html" title="hkl-matrix-private">hkl-matrix-private</a>
+<a class="link" href="hkl-hkl-matrix-private.html#hkl-matrix-transpose" title="hkl_matrix_transpose ()">hkl_matrix_transpose</a>, function in <a class="link" href="hkl-hkl-matrix-private.html" title="hkl-matrix-private">hkl-matrix-private</a>
 </dt>
 <dd></dd>
 <dt>
@@ -1232,15 +1239,15 @@ HklModeIncidence, struct in hkl-pseudoaxis-common-readonly-private
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="hkl-hkl-pseudoaxis-auto-private.html#hkl-mode-auto-init" title="hkl_mode_auto_init ()">hkl_mode_auto_init</a>, function in <a class="link" href="hkl-hkl-pseudoaxis-auto-private.html" title="hkl-pseudoaxis-auto-private">hkl-pseudoaxis-auto-private</a>
+<a class="link" href="hkl-hkl-pseudoaxis-auto-private.html#hkl-mode-auto-init" title="hkl_mode_auto_init ()">hkl_mode_auto_init</a>, function in <a class="link" href="hkl-hkl-pseudoaxis-auto-private.html" title="hkl-pseudoaxis-auto-private">hkl-pseudoaxis-auto-private</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="hkl-hkl-pseudoaxis-auto-private.html#hkl-mode-auto-new" title="hkl_mode_auto_new ()">hkl_mode_auto_new</a>, function in <a class="link" href="hkl-hkl-pseudoaxis-auto-private.html" title="hkl-pseudoaxis-auto-private">hkl-pseudoaxis-auto-private</a>
+<a class="link" href="hkl-hkl-pseudoaxis-auto-private.html#hkl-mode-auto-new" title="hkl_mode_auto_new ()">hkl_mode_auto_new</a>, function in <a class="link" href="hkl-hkl-pseudoaxis-auto-private.html" title="hkl-pseudoaxis-auto-private">hkl-pseudoaxis-auto-private</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="hkl-hkl-pseudoaxis-auto-private.html#hkl-mode-auto-set-real" title="hkl_mode_auto_set_real ()">hkl_mode_auto_set_real</a>, function in <a class="link" href="hkl-hkl-pseudoaxis-auto-private.html" title="hkl-pseudoaxis-auto-private">hkl-pseudoaxis-auto-private</a>
+<a class="link" href="hkl-hkl-pseudoaxis-auto-private.html#hkl-mode-auto-set-real" title="hkl_mode_auto_set_real ()">hkl_mode_auto_set_real</a>, function in <a class="link" href="hkl-hkl-pseudoaxis-auto-private.html" title="hkl-pseudoaxis-auto-private">hkl-pseudoaxis-auto-private</a>
 </dt>
 <dd></dd>
 <dt>
@@ -1248,11 +1255,15 @@ HklModeIncidence, struct in hkl-pseudoaxis-common-readonly-private
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="hkl-hkl-pseudoaxis-auto-private.html#hkl-mode-auto-with-init-new" title="hkl_mode_auto_with_init_new ()">hkl_mode_auto_with_init_new</a>, function in <a class="link" href="hkl-hkl-pseudoaxis-auto-private.html" title="hkl-pseudoaxis-auto-private">hkl-pseudoaxis-auto-private</a>
+<a class="link" href="hkl-hkl-pseudoaxis-auto-private.html#hkl-mode-auto-with-init-new" title="hkl_mode_auto_with_init_new ()">hkl_mode_auto_with_init_new</a>, function in <a class="link" href="hkl-hkl-pseudoaxis-auto-private.html" title="hkl-pseudoaxis-auto-private">hkl-pseudoaxis-auto-private</a>
+</dt>
+<dd></dd>
+<dt>
+hkl_mode_emergence_new, function in hkl-pseudoaxis-common-readonly-private
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="hkl-hkl-pseudoaxis-common-hkl-private.html#hkl-mode-get-hkl-real" title="hkl_mode_get_hkl_real ()">hkl_mode_get_hkl_real</a>, function in <a class="link" href="hkl-hkl-pseudoaxis-common-hkl-private.html" title="hkl-pseudoaxis-common-hkl-private">hkl-pseudoaxis-common-hkl-private</a>
+<a class="link" href="hkl-hkl-pseudoaxis-common-hkl-private.html#hkl-mode-get-hkl-real" title="hkl_mode_get_hkl_real ()">hkl_mode_get_hkl_real</a>, function in <a class="link" href="hkl-hkl-pseudoaxis-common-hkl-private.html" title="hkl-pseudoaxis-common-hkl-private">hkl-pseudoaxis-common-hkl-private</a>
 </dt>
 <dd></dd>
 <dt>
@@ -1264,6 +1275,14 @@ hkl_mode_incidence_new, function in hkl-pseudoaxis-common-readonly-private
 </dt>
 <dd></dd>
 <dt>
+HKL_MODE_INFO_emergence_DEFAULTS, macro in hkl-pseudoaxis-common-readonly-private
+</dt>
+<dd></dd>
+<dt>
+HKL_MODE_INFO_incidence_DEFAULTS, macro in hkl-pseudoaxis-common-readonly-private
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="hkl-hkl-pseudoaxis-private.html#HKL-MODE-INFO-RO:CAPS" title="HKL_MODE_INFO_RO()">HKL_MODE_INFO_RO</a>, macro in <a class="link" href="hkl-hkl-pseudoaxis-private.html" title="hkl-pseudoaxis-private">hkl-pseudoaxis-private</a>
 </dt>
 <dd></dd>
@@ -1276,7 +1295,7 @@ hkl_mode_incidence_new, function in hkl-pseudoaxis-common-readonly-private
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="hkl-hkl-pseudoaxis-common-hkl-private.html#hkl-mode-initialized-set-psi-constant-vertical-real" title="hkl_mode_initialized_set_psi_constant_vertical_real ()">hkl_mode_initialized_set_psi_constant_vertical_real</a>, function in <a class="link" href="hkl-hkl-pseudoaxis-common-hkl-private.html" title="hkl-pseudoaxis-common-hkl-private">hkl-pseudoaxis-common-hkl-private</a>
+<a class="link" href="hkl-hkl-pseudoaxis-common-hkl-private.html#hkl-mode-initialized-set-psi-constant-vertical-real" title="hkl_mode_initialized_set_psi_constant_vertical_real ()">hkl_mode_initialized_set_psi_constant_vertical_real</a>, function in <a class="link" href="hkl-hkl-pseudoaxis-common-hkl-private.html" title="hkl-pseudoaxis-common-hkl-private">hkl-pseudoaxis-common-hkl-private</a>
 </dt>
 <dd></dd>
 <dt>
@@ -1296,11 +1315,11 @@ hkl_mode_incidence_new, function in hkl-pseudoaxis-common-readonly-private
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="hkl-hkl-pseudoaxis-common-psi-private.html#hkl-mode-psi-new" title="hkl_mode_psi_new ()">hkl_mode_psi_new</a>, function in <a class="link" href="hkl-hkl-pseudoaxis-common-psi-private.html" title="hkl-pseudoaxis-common-psi-private">hkl-pseudoaxis-common-psi-private</a>
+<a class="link" href="hkl-hkl-pseudoaxis-common-psi-private.html#hkl-mode-psi-new" title="hkl_mode_psi_new ()">hkl_mode_psi_new</a>, function in <a class="link" href="hkl-hkl-pseudoaxis-common-psi-private.html" title="hkl-pseudoaxis-common-psi-private">hkl-pseudoaxis-common-psi-private</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="hkl-hkl-pseudoaxis-common-hkl-private.html#hkl-mode-set-hkl-real" title="hkl_mode_set_hkl_real ()">hkl_mode_set_hkl_real</a>, function in <a class="link" href="hkl-hkl-pseudoaxis-common-hkl-private.html" title="hkl-pseudoaxis-common-hkl-private">hkl-pseudoaxis-common-hkl-private</a>
+<a class="link" href="hkl-hkl-pseudoaxis-common-hkl-private.html#hkl-mode-set-hkl-real" title="hkl_mode_set_hkl_real ()">hkl_mode_set_hkl_real</a>, function in <a class="link" href="hkl-hkl-pseudoaxis-common-hkl-private.html" title="hkl-pseudoaxis-common-hkl-private">hkl-pseudoaxis-common-hkl-private</a>
 </dt>
 <dd></dd>
 <a name="idxN"></a><h3 class="title">N</h3>
@@ -1314,6 +1333,10 @@ hkl_mode_incidence_new, function in hkl-pseudoaxis-common-readonly-private
 <dd></dd>
 <a name="idxP"></a><h3 class="title">P</h3>
 <dt>
+P99_PROTECT, macro in hkl-pseudoaxis-common-readonly-private
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="hkl-hkl.html#HklParameter" title="HklParameter">HklParameter</a>, struct in <a class="link" href="hkl-hkl-parameter-private.html" title="hkl-parameter-private">hkl-parameter-private</a>
 </dt>
 <dd></dd>
@@ -1338,23 +1361,23 @@ hkl_mode_incidence_new, function in hkl-pseudoaxis-common-readonly-private
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="hkl-hkl-parameter-private.html#hkl-parameter-fprintf" title="hkl_parameter_fprintf ()">hkl_parameter_fprintf</a>, function in <a class="link" href="hkl-hkl-parameter-private.html" title="hkl-parameter-private">hkl-parameter-private</a>
+<a class="link" href="hkl-hkl-parameter-private.html#hkl-parameter-fprintf" title="hkl_parameter_fprintf ()">hkl_parameter_fprintf</a>, function in <a class="link" href="hkl-hkl-parameter-private.html" title="hkl-parameter-private">hkl-parameter-private</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="hkl-hkl-parameter-private.html#hkl-parameter-init-copy" title="hkl_parameter_init_copy ()">hkl_parameter_init_copy</a>, function in <a class="link" href="hkl-hkl-parameter-private.html" title="hkl-parameter-private">hkl-parameter-private</a>
+<a class="link" href="hkl-hkl-parameter-private.html#hkl-parameter-init-copy" title="hkl_parameter_init_copy ()">hkl_parameter_init_copy</a>, function in <a class="link" href="hkl-hkl-parameter-private.html" title="hkl-parameter-private">hkl-parameter-private</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="hkl-hkl-parameter-private.html#hkl-parameter-is-valid" title="hkl_parameter_is_valid ()">hkl_parameter_is_valid</a>, function in <a class="link" href="hkl-hkl-parameter-private.html" title="hkl-parameter-private">hkl-parameter-private</a>
+<a class="link" href="hkl-hkl-parameter-private.html#hkl-parameter-is-valid" title="hkl_parameter_is_valid ()">hkl_parameter_is_valid</a>, function in <a class="link" href="hkl-hkl-parameter-private.html" title="hkl-parameter-private">hkl-parameter-private</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="hkl-hkl-parameter-private.html#hkl-parameter-new" title="hkl_parameter_new ()">hkl_parameter_new</a>, function in <a class="link" href="hkl-hkl-parameter-private.html" title="hkl-parameter-private">hkl-parameter-private</a>
+<a class="link" href="hkl-hkl-parameter-private.html#hkl-parameter-new" title="hkl_parameter_new ()">hkl_parameter_new</a>, function in <a class="link" href="hkl-hkl-parameter-private.html" title="hkl-parameter-private">hkl-parameter-private</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="hkl-hkl-axis-private.html#hkl-parameter-new-axis" title="hkl_parameter_new_axis ()">hkl_parameter_new_axis</a>, function in <a class="link" href="hkl-hkl-axis-private.html" title="hkl-axis-private">hkl-axis-private</a>
+<a class="link" href="hkl-hkl-axis-private.html#hkl-parameter-new-axis" title="hkl_parameter_new_axis ()">hkl_parameter_new_axis</a>, function in <a class="link" href="hkl-hkl-axis-private.html" title="hkl-axis-private">hkl-axis-private</a>
 </dt>
 <dd></dd>
 <dt>
@@ -1362,15 +1385,15 @@ hkl_mode_incidence_new, function in hkl-pseudoaxis-common-readonly-private
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="hkl-hkl-parameter-private.html#hkl-parameter-value-get-closest" title="hkl_parameter_value_get_closest ()">hkl_parameter_value_get_closest</a>, function in <a class="link" href="hkl-hkl-parameter-private.html" title="hkl-parameter-private">hkl-parameter-private</a>
+<a class="link" href="hkl-hkl-parameter-private.html#hkl-parameter-value-get-closest" title="hkl_parameter_value_get_closest ()">hkl_parameter_value_get_closest</a>, function in <a class="link" href="hkl-hkl-parameter-private.html" title="hkl-parameter-private">hkl-parameter-private</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="hkl-hkl-parameter-private.html#hkl-parameter-value-set-smallest-in-range" title="hkl_parameter_value_set_smallest_in_range ()">hkl_parameter_value_set_smallest_in_range</a>, function in <a class="link" href="hkl-hkl-parameter-private.html" title="hkl-parameter-private">hkl-parameter-private</a>
+<a class="link" href="hkl-hkl-parameter-private.html#hkl-parameter-value-set-smallest-in-range" title="hkl_parameter_value_set_smallest_in_range ()">hkl_parameter_value_set_smallest_in_range</a>, function in <a class="link" href="hkl-hkl-parameter-private.html" title="hkl-parameter-private">hkl-parameter-private</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="hkl-hkl-macros-private.html#hkl-printbt" title="hkl_printbt ()">hkl_printbt</a>, function in <a class="link" href="hkl-hkl-macros-private.html" title="hkl-macros-private">hkl-macros-private</a>
+<a class="link" href="hkl-hkl-macros-private.html#hkl-printbt" title="hkl_printbt ()">hkl_printbt</a>, function in <a class="link" href="hkl-hkl-macros-private.html" title="hkl-macros-private">hkl-macros-private</a>
 </dt>
 <dd></dd>
 <dt>
@@ -1382,7 +1405,7 @@ hkl_mode_incidence_new, function in hkl-pseudoaxis-common-readonly-private
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="hkl-ptr-valid.html#ptr-valid" title="ptr_valid ()">ptr_valid</a>, function in <a class="link" href="hkl-ptr-valid.html" title="ptr_valid">ptr_valid</a>
+<a class="link" href="hkl-ptr-valid.html#ptr-valid" title="ptr_valid ()">ptr_valid</a>, function in <a class="link" href="hkl-ptr-valid.html" title="ptr_valid">ptr_valid</a>
 </dt>
 <dd></dd>
 <dt>
@@ -1390,11 +1413,11 @@ hkl_mode_incidence_new, function in hkl-pseudoaxis-common-readonly-private
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="hkl-ptr-valid.html#ptr-valid-batch" title="ptr_valid_batch ()">ptr_valid_batch</a>, function in <a class="link" href="hkl-ptr-valid.html" title="ptr_valid">ptr_valid</a>
+<a class="link" href="hkl-ptr-valid.html#ptr-valid-batch" title="struct ptr_valid_batch">ptr_valid_batch</a>, struct in <a class="link" href="hkl-ptr-valid.html" title="ptr_valid">ptr_valid</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="hkl-ptr-valid.html#ptr-valid-batch-end" title="ptr_valid_batch_end ()">ptr_valid_batch_end</a>, function in <a class="link" href="hkl-ptr-valid.html" title="ptr_valid">ptr_valid</a>
+<a class="link" href="hkl-ptr-valid.html#ptr-valid-batch-end" title="ptr_valid_batch_end ()">ptr_valid_batch_end</a>, function in <a class="link" href="hkl-ptr-valid.html" title="ptr_valid">ptr_valid</a>
 </dt>
 <dd></dd>
 <dt>
@@ -1402,11 +1425,11 @@ hkl_mode_incidence_new, function in hkl-pseudoaxis-common-readonly-private
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="hkl-ptr-valid.html#ptr-valid-batch-start" title="ptr_valid_batch_start ()">ptr_valid_batch_start</a>, function in <a class="link" href="hkl-ptr-valid.html" title="ptr_valid">ptr_valid</a>
+<a class="link" href="hkl-ptr-valid.html#ptr-valid-batch-start" title="ptr_valid_batch_start ()">ptr_valid_batch_start</a>, function in <a class="link" href="hkl-ptr-valid.html" title="ptr_valid">ptr_valid</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="hkl-ptr-valid.html#ptr-valid-batch-string" title="ptr_valid_batch_string ()">ptr_valid_batch_string</a>, function in <a class="link" href="hkl-ptr-valid.html" title="ptr_valid">ptr_valid</a>
+<a class="link" href="hkl-ptr-valid.html#ptr-valid-batch-string" title="ptr_valid_batch_string ()">ptr_valid_batch_string</a>, function in <a class="link" href="hkl-ptr-valid.html" title="ptr_valid">ptr_valid</a>
 </dt>
 <dd></dd>
 <dt>
@@ -1414,11 +1437,15 @@ hkl_mode_incidence_new, function in hkl-pseudoaxis-common-readonly-private
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="hkl-ptr-valid.html#ptr-valid-map" title="struct ptr_valid_map">ptr_valid_map</a>, struct in <a class="link" href="hkl-ptr-valid.html" title="ptr_valid">ptr_valid</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="hkl-ptr-valid.html#ptr-valid-read" title="ptr_valid_read()">ptr_valid_read</a>, macro in <a class="link" href="hkl-ptr-valid.html" title="ptr_valid">ptr_valid</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="hkl-ptr-valid.html#ptr-valid-string" title="ptr_valid_string ()">ptr_valid_string</a>, function in <a class="link" href="hkl-ptr-valid.html" title="ptr_valid">ptr_valid</a>
+<a class="link" href="hkl-ptr-valid.html#ptr-valid-string" title="ptr_valid_string ()">ptr_valid_string</a>, function in <a class="link" href="hkl-ptr-valid.html" title="ptr_valid">ptr_valid</a>
 </dt>
 <dd></dd>
 <dt>
@@ -1431,7 +1458,7 @@ hkl_mode_incidence_new, function in hkl-pseudoaxis-common-readonly-private
 <dd></dd>
 <a name="idxQ"></a><h3 class="title">Q</h3>
 <dt>
-<a class="link" href="hkl-hkl-pseudoaxis-common-q-private.html#qmax" title="qmax ()">qmax</a>, function in <a class="link" href="hkl-hkl-pseudoaxis-common-q-private.html" title="hkl-pseudoaxis-common-q-private">hkl-pseudoaxis-common-q-private</a>
+<a class="link" href="hkl-hkl-pseudoaxis-common-q-private.html#qmax" title="qmax ()">qmax</a>, function in <a class="link" href="hkl-hkl-pseudoaxis-common-q-private.html" title="hkl-pseudoaxis-common-q-private">hkl-pseudoaxis-common-q-private</a>
 </dt>
 <dd></dd>
 <dt>
@@ -1439,55 +1466,55 @@ hkl_mode_incidence_new, function in hkl-pseudoaxis-common-readonly-private
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="hkl-hkl-quaternion-private.html#hkl-quaternion-cmp" title="hkl_quaternion_cmp ()">hkl_quaternion_cmp</a>, function in <a class="link" href="hkl-hkl-quaternion-private.html" title="hkl-quaternion-private">hkl-quaternion-private</a>
+<a class="link" href="hkl-hkl-quaternion-private.html#hkl-quaternion-cmp" title="hkl_quaternion_cmp ()">hkl_quaternion_cmp</a>, function in <a class="link" href="hkl-hkl-quaternion-private.html" title="hkl-quaternion-private">hkl-quaternion-private</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="hkl-hkl-quaternion-private.html#hkl-quaternion-conjugate" title="hkl_quaternion_conjugate ()">hkl_quaternion_conjugate</a>, function in <a class="link" href="hkl-hkl-quaternion-private.html" title="hkl-quaternion-private">hkl-quaternion-private</a>
+<a class="link" href="hkl-hkl-quaternion-private.html#hkl-quaternion-conjugate" title="hkl_quaternion_conjugate ()">hkl_quaternion_conjugate</a>, function in <a class="link" href="hkl-hkl-quaternion-private.html" title="hkl-quaternion-private">hkl-quaternion-private</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="hkl-hkl-quaternion-private.html#hkl-quaternion-dup" title="hkl_quaternion_dup ()">hkl_quaternion_dup</a>, function in <a class="link" href="hkl-hkl-quaternion-private.html" title="hkl-quaternion-private">hkl-quaternion-private</a>
+<a class="link" href="hkl-hkl-quaternion-private.html#hkl-quaternion-dup" title="hkl_quaternion_dup ()">hkl_quaternion_dup</a>, function in <a class="link" href="hkl-hkl-quaternion-private.html" title="hkl-quaternion-private">hkl-quaternion-private</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="hkl-hkl-quaternion-private.html#hkl-quaternion-fprintf" title="hkl_quaternion_fprintf ()">hkl_quaternion_fprintf</a>, function in <a class="link" href="hkl-hkl-quaternion-private.html" title="hkl-quaternion-private">hkl-quaternion-private</a>
+<a class="link" href="hkl-hkl-quaternion-private.html#hkl-quaternion-fprintf" title="hkl_quaternion_fprintf ()">hkl_quaternion_fprintf</a>, function in <a class="link" href="hkl-hkl-quaternion-private.html" title="hkl-quaternion-private">hkl-quaternion-private</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="hkl-hkl-quaternion-private.html#hkl-quaternion-free" title="hkl_quaternion_free ()">hkl_quaternion_free</a>, function in <a class="link" href="hkl-hkl-quaternion-private.html" title="hkl-quaternion-private">hkl-quaternion-private</a>
+<a class="link" href="hkl-hkl-quaternion-private.html#hkl-quaternion-free" title="hkl_quaternion_free ()">hkl_quaternion_free</a>, function in <a class="link" href="hkl-hkl-quaternion-private.html" title="hkl-quaternion-private">hkl-quaternion-private</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="hkl-hkl-quaternion-private.html#hkl-quaternion-init" title="hkl_quaternion_init ()">hkl_quaternion_init</a>, function in <a class="link" href="hkl-hkl-quaternion-private.html" title="hkl-quaternion-private">hkl-quaternion-private</a>
+<a class="link" href="hkl-hkl-quaternion-private.html#hkl-quaternion-init" title="hkl_quaternion_init ()">hkl_quaternion_init</a>, function in <a class="link" href="hkl-hkl-quaternion-private.html" title="hkl-quaternion-private">hkl-quaternion-private</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="hkl-hkl-quaternion-private.html#hkl-quaternion-init-from-angle-and-axe" title="hkl_quaternion_init_from_angle_and_axe ()">hkl_quaternion_init_from_angle_and_axe</a>, function in <a class="link" href="hkl-hkl-quaternion-private.html" title="hkl-quaternion-private">hkl-quaternion-private</a>
+<a class="link" href="hkl-hkl-quaternion-private.html#hkl-quaternion-init-from-angle-and-axe" title="hkl_quaternion_init_from_angle_and_axe ()">hkl_quaternion_init_from_angle_and_axe</a>, function in <a class="link" href="hkl-hkl-quaternion-private.html" title="hkl-quaternion-private">hkl-quaternion-private</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="hkl-hkl-quaternion-private.html#hkl-quaternion-init-from-vector" title="hkl_quaternion_init_from_vector ()">hkl_quaternion_init_from_vector</a>, function in <a class="link" href="hkl-hkl-quaternion-private.html" title="hkl-quaternion-private">hkl-quaternion-private</a>
+<a class="link" href="hkl-hkl-quaternion-private.html#hkl-quaternion-init-from-vector" title="hkl_quaternion_init_from_vector ()">hkl_quaternion_init_from_vector</a>, function in <a class="link" href="hkl-hkl-quaternion-private.html" title="hkl-quaternion-private">hkl-quaternion-private</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="hkl-hkl-quaternion-private.html#hkl-quaternion-minus-quaternion" title="hkl_quaternion_minus_quaternion ()">hkl_quaternion_minus_quaternion</a>, function in <a class="link" href="hkl-hkl-quaternion-private.html" title="hkl-quaternion-private">hkl-quaternion-private</a>
+<a class="link" href="hkl-hkl-quaternion-private.html#hkl-quaternion-minus-quaternion" title="hkl_quaternion_minus_quaternion ()">hkl_quaternion_minus_quaternion</a>, function in <a class="link" href="hkl-hkl-quaternion-private.html" title="hkl-quaternion-private">hkl-quaternion-private</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="hkl-hkl-quaternion-private.html#hkl-quaternion-norm2" title="hkl_quaternion_norm2 ()">hkl_quaternion_norm2</a>, function in <a class="link" href="hkl-hkl-quaternion-private.html" title="hkl-quaternion-private">hkl-quaternion-private</a>
+<a class="link" href="hkl-hkl-quaternion-private.html#hkl-quaternion-norm2" title="hkl_quaternion_norm2 ()">hkl_quaternion_norm2</a>, function in <a class="link" href="hkl-hkl-quaternion-private.html" title="hkl-quaternion-private">hkl-quaternion-private</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="hkl-hkl-quaternion-private.html#hkl-quaternion-times-quaternion" title="hkl_quaternion_times_quaternion ()">hkl_quaternion_times_quaternion</a>, function in <a class="link" href="hkl-hkl-quaternion-private.html" title="hkl-quaternion-private">hkl-quaternion-private</a>
+<a class="link" href="hkl-hkl-quaternion-private.html#hkl-quaternion-times-quaternion" title="hkl_quaternion_times_quaternion ()">hkl_quaternion_times_quaternion</a>, function in <a class="link" href="hkl-hkl-quaternion-private.html" title="hkl-quaternion-private">hkl-quaternion-private</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="hkl-hkl-quaternion-private.html#hkl-quaternion-to-angle-and-axe" title="hkl_quaternion_to_angle_and_axe ()">hkl_quaternion_to_angle_and_axe</a>, function in <a class="link" href="hkl-hkl-quaternion-private.html" title="hkl-quaternion-private">hkl-quaternion-private</a>
+<a class="link" href="hkl-hkl-quaternion-private.html#hkl-quaternion-to-angle-and-axe" title="hkl_quaternion_to_angle_and_axe ()">hkl_quaternion_to_angle_and_axe</a>, function in <a class="link" href="hkl-hkl-quaternion-private.html" title="hkl-quaternion-private">hkl-quaternion-private</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="hkl-hkl-quaternion-private.html#hkl-quaternion-to-matrix" title="hkl_quaternion_to_matrix ()">hkl_quaternion_to_matrix</a>, function in <a class="link" href="hkl-hkl-quaternion-private.html" title="hkl-quaternion-private">hkl-quaternion-private</a>
+<a class="link" href="hkl-hkl-quaternion-private.html#hkl-quaternion-to-matrix" title="hkl_quaternion_to_matrix ()">hkl_quaternion_to_matrix</a>, function in <a class="link" href="hkl-hkl-quaternion-private.html" title="hkl-quaternion-private">hkl-quaternion-private</a>
 </dt>
 <dd></dd>
 <a name="idxR"></a><h3 class="title">R</h3>
@@ -1500,11 +1527,15 @@ hkl_mode_incidence_new, function in hkl-pseudoaxis-common-readonly-private
 </dt>
 <dd></dd>
 <dt>
-rehash, user_function in htable
+REGISTER_READONLY_EMERGENCE, macro in hkl-pseudoaxis-common-readonly-private
+</dt>
+<dd></dd>
+<dt>
+REGISTER_READONLY_INCIDENCE, macro in hkl-pseudoaxis-common-readonly-private
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="hkl-hkl-pseudoaxis-common-hkl-private.html#RUBh-minus-Q" title="RUBh_minus_Q ()">RUBh_minus_Q</a>, function in <a class="link" href="hkl-hkl-pseudoaxis-common-hkl-private.html" title="hkl-pseudoaxis-common-hkl-private">hkl-pseudoaxis-common-hkl-private</a>
+<a class="link" href="hkl-hkl-pseudoaxis-common-hkl-private.html#RUBh-minus-Q" title="RUBh_minus_Q ()">RUBh_minus_Q</a>, function in <a class="link" href="hkl-hkl-pseudoaxis-common-hkl-private.html" title="hkl-pseudoaxis-common-hkl-private">hkl-pseudoaxis-common-hkl-private</a>
 </dt>
 <dd></dd>
 <a name="idxS"></a><h3 class="title">S</h3>
@@ -1529,7 +1560,7 @@ rehash, user_function in htable
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="hkl-hkl-sample-private.html#hkl-sample-fprintf" title="hkl_sample_fprintf ()">hkl_sample_fprintf</a>, function in <a class="link" href="hkl-hkl-sample-private.html" title="hkl-sample-private">hkl-sample-private</a>
+<a class="link" href="hkl-hkl-sample-private.html#hkl-sample-fprintf" title="hkl_sample_fprintf ()">hkl_sample_fprintf</a>, function in <a class="link" href="hkl-hkl-sample-private.html" title="hkl-sample-private">hkl-sample-private</a>
 </dt>
 <dd></dd>
 <dt>
@@ -1541,11 +1572,11 @@ rehash, user_function in htable
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="hkl-hkl-sample-private.html#hkl-sample-reflection-free" title="hkl_sample_reflection_free ()">hkl_sample_reflection_free</a>, function in <a class="link" href="hkl-hkl-sample-private.html" title="hkl-sample-private">hkl-sample-private</a>
+<a class="link" href="hkl-hkl-sample-private.html#hkl-sample-reflection-free" title="hkl_sample_reflection_free ()">hkl_sample_reflection_free</a>, function in <a class="link" href="hkl-hkl-sample-private.html" title="hkl-sample-private">hkl-sample-private</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="hkl-hkl-sample-private.html#hkl-sample-reflection-new-copy" title="hkl_sample_reflection_new_copy ()">hkl_sample_reflection_new_copy</a>, function in <a class="link" href="hkl-hkl-sample-private.html" title="hkl-sample-private">hkl-sample-private</a>
+<a class="link" href="hkl-hkl-sample-private.html#hkl-sample-reflection-new-copy" title="hkl_sample_reflection_new_copy ()">hkl_sample_reflection_new_copy</a>, function in <a class="link" href="hkl-hkl-sample-private.html" title="hkl-sample-private">hkl-sample-private</a>
 </dt>
 <dd></dd>
 <dt>
@@ -1557,11 +1588,11 @@ rehash, user_function in htable
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="hkl-hkl-source-private.html#hkl-source-cmp" title="hkl_source_cmp ()">hkl_source_cmp</a>, function in <a class="link" href="hkl-hkl-source-private.html" title="hkl-source-private">hkl-source-private</a>
+<a class="link" href="hkl-hkl-source-private.html#hkl-source-cmp" title="hkl_source_cmp ()">hkl_source_cmp</a>, function in <a class="link" href="hkl-hkl-source-private.html" title="hkl-source-private">hkl-source-private</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="hkl-hkl-source-private.html#hkl-source-compute-ki" title="hkl_source_compute_ki ()">hkl_source_compute_ki</a>, function in <a class="link" href="hkl-hkl-source-private.html" title="hkl-source-private">hkl-source-private</a>
+<a class="link" href="hkl-hkl-source-private.html#hkl-source-compute-ki" title="hkl_source_compute_ki ()">hkl_source_compute_ki</a>, function in <a class="link" href="hkl-hkl-source-private.html" title="hkl-source-private">hkl-source-private</a>
 </dt>
 <dd></dd>
 <dt>
@@ -1569,23 +1600,23 @@ rehash, user_function in htable
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="hkl-hkl-source-private.html#hkl-source-dup" title="hkl_source_dup ()">hkl_source_dup</a>, function in <a class="link" href="hkl-hkl-source-private.html" title="hkl-source-private">hkl-source-private</a>
+<a class="link" href="hkl-hkl-source-private.html#hkl-source-dup" title="hkl_source_dup ()">hkl_source_dup</a>, function in <a class="link" href="hkl-hkl-source-private.html" title="hkl-source-private">hkl-source-private</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="hkl-hkl-source-private.html#hkl-source-fprintf" title="hkl_source_fprintf ()">hkl_source_fprintf</a>, function in <a class="link" href="hkl-hkl-source-private.html" title="hkl-source-private">hkl-source-private</a>
+<a class="link" href="hkl-hkl-source-private.html#hkl-source-fprintf" title="hkl_source_fprintf ()">hkl_source_fprintf</a>, function in <a class="link" href="hkl-hkl-source-private.html" title="hkl-source-private">hkl-source-private</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="hkl-hkl-source-private.html#hkl-source-free" title="hkl_source_free ()">hkl_source_free</a>, function in <a class="link" href="hkl-hkl-source-private.html" title="hkl-source-private">hkl-source-private</a>
+<a class="link" href="hkl-hkl-source-private.html#hkl-source-free" title="hkl_source_free ()">hkl_source_free</a>, function in <a class="link" href="hkl-hkl-source-private.html" title="hkl-source-private">hkl-source-private</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="hkl-hkl-source-private.html#hkl-source-get-wavelength" title="hkl_source_get_wavelength ()">hkl_source_get_wavelength</a>, function in <a class="link" href="hkl-hkl-source-private.html" title="hkl-source-private">hkl-source-private</a>
+<a class="link" href="hkl-hkl-source-private.html#hkl-source-get-wavelength" title="hkl_source_get_wavelength ()">hkl_source_get_wavelength</a>, function in <a class="link" href="hkl-hkl-source-private.html" title="hkl-source-private">hkl-source-private</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="hkl-hkl-source-private.html#hkl-source-init" title="hkl_source_init ()">hkl_source_init</a>, function in <a class="link" href="hkl-hkl-source-private.html" title="hkl-source-private">hkl-source-private</a>
+<a class="link" href="hkl-hkl-source-private.html#hkl-source-init" title="hkl_source_init ()">hkl_source_init</a>, function in <a class="link" href="hkl-hkl-source-private.html" title="hkl-source-private">hkl-source-private</a>
 </dt>
 <dd></dd>
 <dt>
@@ -1593,7 +1624,7 @@ rehash, user_function in htable
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="hkl-str.html#strcount" title="strcount ()">strcount</a>, function in <a class="link" href="hkl-str.html" title="str">str</a>
+<a class="link" href="hkl-str.html#strcount" title="strcount ()">strcount</a>, function in <a class="link" href="hkl-str.html" title="str">str</a>
 </dt>
 <dd></dd>
 <dt>
@@ -1625,55 +1656,55 @@ rehash, user_function in htable
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="hkl-str-debug.html#str-isalnum" title="str_isalnum ()">str_isalnum</a>, function in <a class="link" href="hkl-str-debug.html" title="str_debug">str_debug</a>
+<a class="link" href="hkl-str-debug.html#str-isalnum" title="str_isalnum ()">str_isalnum</a>, function in <a class="link" href="hkl-str-debug.html" title="str_debug">str_debug</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="hkl-str-debug.html#str-isalpha" title="str_isalpha ()">str_isalpha</a>, function in <a class="link" href="hkl-str-debug.html" title="str_debug">str_debug</a>
+<a class="link" href="hkl-str-debug.html#str-isalpha" title="str_isalpha ()">str_isalpha</a>, function in <a class="link" href="hkl-str-debug.html" title="str_debug">str_debug</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="hkl-str-debug.html#str-isascii" title="str_isascii ()">str_isascii</a>, function in <a class="link" href="hkl-str-debug.html" title="str_debug">str_debug</a>
+<a class="link" href="hkl-str-debug.html#str-isascii" title="str_isascii ()">str_isascii</a>, function in <a class="link" href="hkl-str-debug.html" title="str_debug">str_debug</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="hkl-str-debug.html#str-isblank" title="str_isblank ()">str_isblank</a>, function in <a class="link" href="hkl-str-debug.html" title="str_debug">str_debug</a>
+<a class="link" href="hkl-str-debug.html#str-isblank" title="str_isblank ()">str_isblank</a>, function in <a class="link" href="hkl-str-debug.html" title="str_debug">str_debug</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="hkl-str-debug.html#str-iscntrl" title="str_iscntrl ()">str_iscntrl</a>, function in <a class="link" href="hkl-str-debug.html" title="str_debug">str_debug</a>
+<a class="link" href="hkl-str-debug.html#str-iscntrl" title="str_iscntrl ()">str_iscntrl</a>, function in <a class="link" href="hkl-str-debug.html" title="str_debug">str_debug</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="hkl-str-debug.html#str-isdigit" title="str_isdigit ()">str_isdigit</a>, function in <a class="link" href="hkl-str-debug.html" title="str_debug">str_debug</a>
+<a class="link" href="hkl-str-debug.html#str-isdigit" title="str_isdigit ()">str_isdigit</a>, function in <a class="link" href="hkl-str-debug.html" title="str_debug">str_debug</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="hkl-str-debug.html#str-isgraph" title="str_isgraph ()">str_isgraph</a>, function in <a class="link" href="hkl-str-debug.html" title="str_debug">str_debug</a>
+<a class="link" href="hkl-str-debug.html#str-isgraph" title="str_isgraph ()">str_isgraph</a>, function in <a class="link" href="hkl-str-debug.html" title="str_debug">str_debug</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="hkl-str-debug.html#str-islower" title="str_islower ()">str_islower</a>, function in <a class="link" href="hkl-str-debug.html" title="str_debug">str_debug</a>
+<a class="link" href="hkl-str-debug.html#str-islower" title="str_islower ()">str_islower</a>, function in <a class="link" href="hkl-str-debug.html" title="str_debug">str_debug</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="hkl-str-debug.html#str-isprint" title="str_isprint ()">str_isprint</a>, function in <a class="link" href="hkl-str-debug.html" title="str_debug">str_debug</a>
+<a class="link" href="hkl-str-debug.html#str-isprint" title="str_isprint ()">str_isprint</a>, function in <a class="link" href="hkl-str-debug.html" title="str_debug">str_debug</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="hkl-str-debug.html#str-ispunct" title="str_ispunct ()">str_ispunct</a>, function in <a class="link" href="hkl-str-debug.html" title="str_debug">str_debug</a>
+<a class="link" href="hkl-str-debug.html#str-ispunct" title="str_ispunct ()">str_ispunct</a>, function in <a class="link" href="hkl-str-debug.html" title="str_debug">str_debug</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="hkl-str-debug.html#str-isspace" title="str_isspace ()">str_isspace</a>, function in <a class="link" href="hkl-str-debug.html" title="str_debug">str_debug</a>
+<a class="link" href="hkl-str-debug.html#str-isspace" title="str_isspace ()">str_isspace</a>, function in <a class="link" href="hkl-str-debug.html" title="str_debug">str_debug</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="hkl-str-debug.html#str-isupper" title="str_isupper ()">str_isupper</a>, function in <a class="link" href="hkl-str-debug.html" title="str_debug">str_debug</a>
+<a class="link" href="hkl-str-debug.html#str-isupper" title="str_isupper ()">str_isupper</a>, function in <a class="link" href="hkl-str-debug.html" title="str_debug">str_debug</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="hkl-str-debug.html#str-isxdigit" title="str_isxdigit ()">str_isxdigit</a>, function in <a class="link" href="hkl-str-debug.html" title="str_debug">str_debug</a>
+<a class="link" href="hkl-str-debug.html#str-isxdigit" title="str_isxdigit ()">str_isxdigit</a>, function in <a class="link" href="hkl-str-debug.html" title="str_debug">str_debug</a>
 </dt>
 <dd></dd>
 <dt>
@@ -1685,15 +1716,19 @@ rehash, user_function in htable
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="hkl-str-debug.html#str-strchr" title="str_strchr ()">str_strchr</a>, function in <a class="link" href="hkl-str-debug.html" title="str_debug">str_debug</a>
+<a class="link" href="hkl-str-debug.html#str-strchr" title="str_strchr ()">str_strchr</a>, function in <a class="link" href="hkl-str-debug.html" title="str_debug">str_debug</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="hkl-str-debug.html#str-strrchr" title="str_strrchr ()">str_strrchr</a>, function in <a class="link" href="hkl-str-debug.html" title="str_debug">str_debug</a>
+<a class="link" href="hkl-str-debug.html#str-strrchr" title="str_strrchr ()">str_strrchr</a>, function in <a class="link" href="hkl-str-debug.html" title="str_debug">str_debug</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="hkl-str-debug.html#str-strstr" title="str_strstr ()">str_strstr</a>, function in <a class="link" href="hkl-str-debug.html" title="str_debug">str_debug</a>
+<a class="link" href="hkl-str-debug.html#str-strstr" title="str_strstr ()">str_strstr</a>, function in <a class="link" href="hkl-str-debug.html" title="str_debug">str_debug</a>
+</dt>
+<dd></dd>
+<dt>
+SURFACE_PARAMETERS, macro in hkl-pseudoaxis-common-readonly-private
 </dt>
 <dd></dd>
 <a name="idxT"></a><h3 class="title">T</h3>
@@ -1795,23 +1830,23 @@ rehash, user_function in htable
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="hkl-hkl-unit-private.html#hkl-unit-compatible" title="hkl_unit_compatible ()">hkl_unit_compatible</a>, function in <a class="link" href="hkl-hkl-unit-private.html" title="hkl-unit-private">hkl-unit-private</a>
+<a class="link" href="hkl-hkl-unit-private.html#hkl-unit-compatible" title="hkl_unit_compatible ()">hkl_unit_compatible</a>, function in <a class="link" href="hkl-hkl-unit-private.html" title="hkl-unit-private">hkl-unit-private</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="hkl-hkl-unit-private.html#hkl-unit-dup" title="hkl_unit_dup ()">hkl_unit_dup</a>, function in <a class="link" href="hkl-hkl-unit-private.html" title="hkl-unit-private">hkl-unit-private</a>
+<a class="link" href="hkl-hkl-unit-private.html#hkl-unit-dup" title="hkl_unit_dup ()">hkl_unit_dup</a>, function in <a class="link" href="hkl-hkl-unit-private.html" title="hkl-unit-private">hkl-unit-private</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="hkl-hkl-unit-private.html#hkl-unit-factor" title="hkl_unit_factor ()">hkl_unit_factor</a>, function in <a class="link" href="hkl-hkl-unit-private.html" title="hkl-unit-private">hkl-unit-private</a>
+<a class="link" href="hkl-hkl-unit-private.html#hkl-unit-factor" title="hkl_unit_factor ()">hkl_unit_factor</a>, function in <a class="link" href="hkl-hkl-unit-private.html" title="hkl-unit-private">hkl-unit-private</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="hkl-hkl-unit-private.html#hkl-unit-free" title="hkl_unit_free ()">hkl_unit_free</a>, function in <a class="link" href="hkl-hkl-unit-private.html" title="hkl-unit-private">hkl-unit-private</a>
+<a class="link" href="hkl-hkl-unit-private.html#hkl-unit-free" title="hkl_unit_free ()">hkl_unit_free</a>, function in <a class="link" href="hkl-hkl-unit-private.html" title="hkl-unit-private">hkl-unit-private</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="hkl-noerr.html#unlink-noerr" title="unlink_noerr ()">unlink_noerr</a>, function in <a class="link" href="hkl-noerr.html" title="noerr">noerr</a>
+<a class="link" href="hkl-noerr.html#unlink-noerr" title="unlink_noerr ()">unlink_noerr</a>, function in <a class="link" href="hkl-noerr.html" title="noerr">noerr</a>
 </dt>
 <dd></dd>
 <dt>
@@ -1828,137 +1863,137 @@ rehash, user_function in htable
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="hkl-hkl-vector-private.html#hkl-vector-add-vector" title="hkl_vector_add_vector ()">hkl_vector_add_vector</a>, function in <a class="link" href="hkl-hkl-vector-private.html" title="hkl-vector-private">hkl-vector-private</a>
+<a class="link" href="hkl-hkl-vector-private.html#hkl-vector-add-vector" title="hkl_vector_add_vector ()">hkl_vector_add_vector</a>, function in <a class="link" href="hkl-hkl-vector-private.html" title="hkl-vector-private">hkl-vector-private</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="hkl-hkl-vector-private.html#hkl-vector-angle" title="hkl_vector_angle ()">hkl_vector_angle</a>, function in <a class="link" href="hkl-hkl-vector-private.html" title="hkl-vector-private">hkl-vector-private</a>
+<a class="link" href="hkl-hkl-vector-private.html#hkl-vector-angle" title="hkl_vector_angle ()">hkl_vector_angle</a>, function in <a class="link" href="hkl-hkl-vector-private.html" title="hkl-vector-private">hkl-vector-private</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="hkl-hkl-vector-private.html#hkl-vector-cmp" title="hkl_vector_cmp ()">hkl_vector_cmp</a>, function in <a class="link" href="hkl-hkl-vector-private.html" title="hkl-vector-private">hkl-vector-private</a>
+<a class="link" href="hkl-hkl-vector-private.html#hkl-vector-cmp" title="hkl_vector_cmp ()">hkl_vector_cmp</a>, function in <a class="link" href="hkl-hkl-vector-private.html" title="hkl-vector-private">hkl-vector-private</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="hkl-hkl-vector-private.html#hkl-vector-div-double" title="hkl_vector_div_double ()">hkl_vector_div_double</a>, function in <a class="link" href="hkl-hkl-vector-private.html" title="hkl-vector-private">hkl-vector-private</a>
+<a class="link" href="hkl-hkl-vector-private.html#hkl-vector-div-double" title="hkl_vector_div_double ()">hkl_vector_div_double</a>, function in <a class="link" href="hkl-hkl-vector-private.html" title="hkl-vector-private">hkl-vector-private</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="hkl-hkl-vector-private.html#hkl-vector-dup" title="hkl_vector_dup ()">hkl_vector_dup</a>, function in <a class="link" href="hkl-hkl-vector-private.html" title="hkl-vector-private">hkl-vector-private</a>
+<a class="link" href="hkl-hkl-vector-private.html#hkl-vector-dup" title="hkl_vector_dup ()">hkl_vector_dup</a>, function in <a class="link" href="hkl-hkl-vector-private.html" title="hkl-vector-private">hkl-vector-private</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="hkl-hkl-vector-private.html#hkl-vector-fprintf" title="hkl_vector_fprintf ()">hkl_vector_fprintf</a>, function in <a class="link" href="hkl-hkl-vector-private.html" title="hkl-vector-private">hkl-vector-private</a>
+<a class="link" href="hkl-hkl-vector-private.html#hkl-vector-fprintf" title="hkl_vector_fprintf ()">hkl_vector_fprintf</a>, function in <a class="link" href="hkl-hkl-vector-private.html" title="hkl-vector-private">hkl-vector-private</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="hkl-hkl-vector-private.html#hkl-vector-free" title="hkl_vector_free ()">hkl_vector_free</a>, function in <a class="link" href="hkl-hkl-vector-private.html" title="hkl-vector-private">hkl-vector-private</a>
+<a class="link" href="hkl-hkl-vector-private.html#hkl-vector-free" title="hkl_vector_free ()">hkl_vector_free</a>, function in <a class="link" href="hkl-hkl-vector-private.html" title="hkl-vector-private">hkl-vector-private</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="hkl-hkl-vector-private.html#hkl-vector-init" title="hkl_vector_init ()">hkl_vector_init</a>, function in <a class="link" href="hkl-hkl-vector-private.html" title="hkl-vector-private">hkl-vector-private</a>
+<a class="link" href="hkl-hkl-vector-private.html#hkl-vector-init" title="hkl_vector_init ()">hkl_vector_init</a>, function in <a class="link" href="hkl-hkl-vector-private.html" title="hkl-vector-private">hkl-vector-private</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="hkl-hkl-vector-private.html#hkl-vector-is-colinear" title="hkl_vector_is_colinear ()">hkl_vector_is_colinear</a>, function in <a class="link" href="hkl-hkl-vector-private.html" title="hkl-vector-private">hkl-vector-private</a>
+<a class="link" href="hkl-hkl-vector-private.html#hkl-vector-is-colinear" title="hkl_vector_is_colinear ()">hkl_vector_is_colinear</a>, function in <a class="link" href="hkl-hkl-vector-private.html" title="hkl-vector-private">hkl-vector-private</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="hkl-hkl-vector-private.html#hkl-vector-is-null" title="hkl_vector_is_null ()">hkl_vector_is_null</a>, function in <a class="link" href="hkl-hkl-vector-private.html" title="hkl-vector-private">hkl-vector-private</a>
+<a class="link" href="hkl-hkl-vector-private.html#hkl-vector-is-null" title="hkl_vector_is_null ()">hkl_vector_is_null</a>, function in <a class="link" href="hkl-hkl-vector-private.html" title="hkl-vector-private">hkl-vector-private</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="hkl-hkl-vector-private.html#hkl-vector-is-opposite" title="hkl_vector_is_opposite ()">hkl_vector_is_opposite</a>, function in <a class="link" href="hkl-hkl-vector-private.html" title="hkl-vector-private">hkl-vector-private</a>
+<a class="link" href="hkl-hkl-vector-private.html#hkl-vector-is-opposite" title="hkl_vector_is_opposite ()">hkl_vector_is_opposite</a>, function in <a class="link" href="hkl-hkl-vector-private.html" title="hkl-vector-private">hkl-vector-private</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="hkl-hkl-vector-private.html#hkl-vector-minus-vector" title="hkl_vector_minus_vector ()">hkl_vector_minus_vector</a>, function in <a class="link" href="hkl-hkl-vector-private.html" title="hkl-vector-private">hkl-vector-private</a>
+<a class="link" href="hkl-hkl-vector-private.html#hkl-vector-minus-vector" title="hkl_vector_minus_vector ()">hkl_vector_minus_vector</a>, function in <a class="link" href="hkl-hkl-vector-private.html" title="hkl-vector-private">hkl-vector-private</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="hkl-hkl-vector-private.html#hkl-vector-norm2" title="hkl_vector_norm2 ()">hkl_vector_norm2</a>, function in <a class="link" href="hkl-hkl-vector-private.html" title="hkl-vector-private">hkl-vector-private</a>
+<a class="link" href="hkl-hkl-vector-private.html#hkl-vector-norm2" title="hkl_vector_norm2 ()">hkl_vector_norm2</a>, function in <a class="link" href="hkl-hkl-vector-private.html" title="hkl-vector-private">hkl-vector-private</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="hkl-hkl-vector-private.html#hkl-vector-normalize" title="hkl_vector_normalize ()">hkl_vector_normalize</a>, function in <a class="link" href="hkl-hkl-vector-private.html" title="hkl-vector-private">hkl-vector-private</a>
+<a class="link" href="hkl-hkl-vector-private.html#hkl-vector-normalize" title="hkl_vector_normalize ()">hkl_vector_normalize</a>, function in <a class="link" href="hkl-hkl-vector-private.html" title="hkl-vector-private">hkl-vector-private</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="hkl-hkl-vector-private.html#hkl-vector-oriented-angle" title="hkl_vector_oriented_angle ()">hkl_vector_oriented_angle</a>, function in <a class="link" href="hkl-hkl-vector-private.html" title="hkl-vector-private">hkl-vector-private</a>
+<a class="link" href="hkl-hkl-vector-private.html#hkl-vector-oriented-angle" title="hkl_vector_oriented_angle ()">hkl_vector_oriented_angle</a>, function in <a class="link" href="hkl-hkl-vector-private.html" title="hkl-vector-private">hkl-vector-private</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="hkl-hkl-vector-private.html#hkl-vector-oriented-angle-points" title="hkl_vector_oriented_angle_points ()">hkl_vector_oriented_angle_points</a>, function in <a class="link" href="hkl-hkl-vector-private.html" title="hkl-vector-private">hkl-vector-private</a>
+<a class="link" href="hkl-hkl-vector-private.html#hkl-vector-oriented-angle-points" title="hkl_vector_oriented_angle_points ()">hkl_vector_oriented_angle_points</a>, function in <a class="link" href="hkl-hkl-vector-private.html" title="hkl-vector-private">hkl-vector-private</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="hkl-hkl-vector-private.html#hkl-vector-project-on-plan" title="hkl_vector_project_on_plan ()">hkl_vector_project_on_plan</a>, function in <a class="link" href="hkl-hkl-vector-private.html" title="hkl-vector-private">hkl-vector-private</a>
+<a class="link" href="hkl-hkl-vector-private.html#hkl-vector-project-on-plan" title="hkl_vector_project_on_plan ()">hkl_vector_project_on_plan</a>, function in <a class="link" href="hkl-hkl-vector-private.html" title="hkl-vector-private">hkl-vector-private</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="hkl-hkl-vector-private.html#hkl-vector-project-on-plan-with-point" title="hkl_vector_project_on_plan_with_point ()">hkl_vector_project_on_plan_with_point</a>, function in <a class="link" href="hkl-hkl-vector-private.html" title="hkl-vector-private">hkl-vector-private</a>
+<a class="link" href="hkl-hkl-vector-private.html#hkl-vector-project-on-plan-with-point" title="hkl_vector_project_on_plan_with_point ()">hkl_vector_project_on_plan_with_point</a>, function in <a class="link" href="hkl-hkl-vector-private.html" title="hkl-vector-private">hkl-vector-private</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="hkl-hkl-vector-private.html#hkl-vector-randomize" title="hkl_vector_randomize ()">hkl_vector_randomize</a>, function in <a class="link" href="hkl-hkl-vector-private.html" title="hkl-vector-private">hkl-vector-private</a>
+<a class="link" href="hkl-hkl-vector-private.html#hkl-vector-randomize" title="hkl_vector_randomize ()">hkl_vector_randomize</a>, function in <a class="link" href="hkl-hkl-vector-private.html" title="hkl-vector-private">hkl-vector-private</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="hkl-hkl-vector-private.html#hkl-vector-randomize-vector" title="hkl_vector_randomize_vector ()">hkl_vector_randomize_vector</a>, function in <a class="link" href="hkl-hkl-vector-private.html" title="hkl-vector-private">hkl-vector-private</a>
+<a class="link" href="hkl-hkl-vector-private.html#hkl-vector-randomize-vector" title="hkl_vector_randomize_vector ()">hkl_vector_randomize_vector</a>, function in <a class="link" href="hkl-hkl-vector-private.html" title="hkl-vector-private">hkl-vector-private</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="hkl-hkl-vector-private.html#hkl-vector-randomize-vector-vector" title="hkl_vector_randomize_vector_vector ()">hkl_vector_randomize_vector_vector</a>, function in <a class="link" href="hkl-hkl-vector-private.html" title="hkl-vector-private">hkl-vector-private</a>
+<a class="link" href="hkl-hkl-vector-private.html#hkl-vector-randomize-vector-vector" title="hkl_vector_randomize_vector_vector ()">hkl_vector_randomize_vector_vector</a>, function in <a class="link" href="hkl-hkl-vector-private.html" title="hkl-vector-private">hkl-vector-private</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="hkl-hkl-vector-private.html#hkl-vector-rotated-around-line" title="hkl_vector_rotated_around_line ()">hkl_vector_rotated_around_line</a>, function in <a class="link" href="hkl-hkl-vector-private.html" title="hkl-vector-private">hkl-vector-private</a>
+<a class="link" href="hkl-hkl-vector-private.html#hkl-vector-rotated-around-line" title="hkl_vector_rotated_around_line ()">hkl_vector_rotated_around_line</a>, function in <a class="link" href="hkl-hkl-vector-private.html" title="hkl-vector-private">hkl-vector-private</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="hkl-hkl-vector-private.html#hkl-vector-rotated-around-vector" title="hkl_vector_rotated_around_vector ()">hkl_vector_rotated_around_vector</a>, function in <a class="link" href="hkl-hkl-vector-private.html" title="hkl-vector-private">hkl-vector-private</a>
+<a class="link" href="hkl-hkl-vector-private.html#hkl-vector-rotated-around-vector" title="hkl_vector_rotated_around_vector ()">hkl_vector_rotated_around_vector</a>, function in <a class="link" href="hkl-hkl-vector-private.html" title="hkl-vector-private">hkl-vector-private</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="hkl-hkl-vector-private.html#hkl-vector-rotated-quaternion" title="hkl_vector_rotated_quaternion ()">hkl_vector_rotated_quaternion</a>, function in <a class="link" href="hkl-hkl-vector-private.html" title="hkl-vector-private">hkl-vector-private</a>
+<a class="link" href="hkl-hkl-vector-private.html#hkl-vector-rotated-quaternion" title="hkl_vector_rotated_quaternion ()">hkl_vector_rotated_quaternion</a>, function in <a class="link" href="hkl-hkl-vector-private.html" title="hkl-vector-private">hkl-vector-private</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="hkl-hkl-vector-private.html#hkl-vector-scalar-product" title="hkl_vector_scalar_product ()">hkl_vector_scalar_product</a>, function in <a class="link" href="hkl-hkl-vector-private.html" title="hkl-vector-private">hkl-vector-private</a>
+<a class="link" href="hkl-hkl-vector-private.html#hkl-vector-scalar-product" title="hkl_vector_scalar_product ()">hkl_vector_scalar_product</a>, function in <a class="link" href="hkl-hkl-vector-private.html" title="hkl-vector-private">hkl-vector-private</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="hkl-hkl-vector-private.html#hkl-vector-sum" title="hkl_vector_sum ()">hkl_vector_sum</a>, function in <a class="link" href="hkl-hkl-vector-private.html" title="hkl-vector-private">hkl-vector-private</a>
+<a class="link" href="hkl-hkl-vector-private.html#hkl-vector-sum" title="hkl_vector_sum ()">hkl_vector_sum</a>, function in <a class="link" href="hkl-hkl-vector-private.html" title="hkl-vector-private">hkl-vector-private</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="hkl-hkl-vector-private.html#hkl-vector-times-double" title="hkl_vector_times_double ()">hkl_vector_times_double</a>, function in <a class="link" href="hkl-hkl-vector-private.html" title="hkl-vector-private">hkl-vector-private</a>
+<a class="link" href="hkl-hkl-vector-private.html#hkl-vector-times-double" title="hkl_vector_times_double ()">hkl_vector_times_double</a>, function in <a class="link" href="hkl-hkl-vector-private.html" title="hkl-vector-private">hkl-vector-private</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="hkl-hkl-vector-private.html#hkl-vector-times-matrix" title="hkl_vector_times_matrix ()">hkl_vector_times_matrix</a>, function in <a class="link" href="hkl-hkl-vector-private.html" title="hkl-vector-private">hkl-vector-private</a>
+<a class="link" href="hkl-hkl-vector-private.html#hkl-vector-times-matrix" title="hkl_vector_times_matrix ()">hkl_vector_times_matrix</a>, function in <a class="link" href="hkl-hkl-vector-private.html" title="hkl-vector-private">hkl-vector-private</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="hkl-hkl-vector-private.html#hkl-vector-times-vector" title="hkl_vector_times_vector ()">hkl_vector_times_vector</a>, function in <a class="link" href="hkl-hkl-vector-private.html" title="hkl-vector-private">hkl-vector-private</a>
+<a class="link" href="hkl-hkl-vector-private.html#hkl-vector-times-vector" title="hkl_vector_times_vector ()">hkl_vector_times_vector</a>, function in <a class="link" href="hkl-hkl-vector-private.html" title="hkl-vector-private">hkl-vector-private</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="hkl-hkl-vector-private.html#hkl-vector-vectorial-product" title="hkl_vector_vectorial_product ()">hkl_vector_vectorial_product</a>, function in <a class="link" href="hkl-hkl-vector-private.html" title="hkl-vector-private">hkl-vector-private</a>
+<a class="link" href="hkl-hkl-vector-private.html#hkl-vector-vectorial-product" title="hkl_vector_vectorial_product ()">hkl_vector_vectorial_product</a>, function in <a class="link" href="hkl-hkl-vector-private.html" title="hkl-vector-private">hkl-vector-private</a>
 </dt>
 <dd></dd>
 <a name="idxW"></a><h3 class="title">W</h3>
 <dt>
-<a class="link" href="hkl-compiler.html#WARN-UNUSED-RESULT:CAPS" title="WARN_UNUSED_RESULT">WARN_UNUSED_RESULT</a>, macro in <a class="link" href="hkl-compiler.html" title="compiler">compiler</a>
+<a class="link" href="hkl-hkl.html#HKL-WARN-UNUSED-RESULT:CAPS" title="HKL_WARN_UNUSED_RESULT">HKL_WARN_UNUSED_RESULT</a>, macro in <a class="link" href="hkl-hkl.html" title="hkl">hkl</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="hkl-hkl.html#HKL-WARN-UNUSED-RESULT:CAPS" title="HKL_WARN_UNUSED_RESULT">HKL_WARN_UNUSED_RESULT</a>, macro in <a class="link" href="hkl-hkl.html" title="hkl">hkl</a>
+<a class="link" href="hkl-compiler.html#WARN-UNUSED-RESULT:CAPS" title="WARN_UNUSED_RESULT">WARN_UNUSED_RESULT</a>, macro in <a class="link" href="hkl-compiler.html" title="compiler">compiler</a>
 </dt>
 <dd></dd>
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/Documentation/api/html/ch01.html b/Documentation/api/html/ch01.html
index 1df0f4b..36f1f93 100644
--- a/Documentation/api/html/ch01.html
+++ b/Documentation/api/html/ch01.html
@@ -2,27 +2,27 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>[Insert title here]</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<title>hkl Reference Manual: [Insert title here]</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="hkl Reference Manual">
 <link rel="up" href="index.html" title="hkl Reference Manual">
 <link rel="prev" href="index.html" title="hkl Reference Manual">
 <link rel="next" href="hkl-array-size.html" title="array_size">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle">
-<td><a accesskey="p" href="index.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td> </td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">hkl Reference Manual</th>
-<td><a accesskey="n" href="hkl-array-size.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts"></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><img src="up-insensitive.png" width="16" height="16" border="0"></td>
+<td><a accesskey="p" href="index.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="hkl-array-size.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="chapter">
-<div class="titlepage"><div><div><h2 class="title">
-<a name="idp17668000"></a>[Insert title here]</h2></div></div></div>
-<div class="toc"><dl>
+<div class="titlepage"><div><div><h1 class="title">
+<a name="id-1.2"></a>[Insert title here]</h1></div></div></div>
+<div class="toc"><dl class="toc">
 <dt>
 <span class="refentrytitle"><a href="hkl-array-size.html">array_size</a></span><span class="refpurpose"></span>
 </dt>
@@ -132,6 +132,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/Documentation/api/html/deprecated-api-index.html b/Documentation/api/html/deprecated-api-index.html
index 80fb927..55ef44f 100644
--- a/Documentation/api/html/deprecated-api-index.html
+++ b/Documentation/api/html/deprecated-api-index.html
@@ -2,30 +2,30 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Index of deprecated API</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<title>hkl Reference Manual: Index of deprecated API</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="hkl Reference Manual">
 <link rel="up" href="index.html" title="hkl Reference Manual">
 <link rel="prev" href="api-index-full.html" title="API Index">
 <link rel="next" href="annotation-glossary.html" title="Annotation Glossary">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle">
-<td><a accesskey="p" href="api-index-full.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td> </td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">hkl Reference Manual</th>
-<td><a accesskey="n" href="annotation-glossary.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts"></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><img src="up-insensitive.png" width="16" height="16" border="0"></td>
+<td><a accesskey="p" href="api-index-full.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="annotation-glossary.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="index">
-<div class="titlepage"><div><div><h2 class="title">
-<a name="deprecated-api-index"></a>Index of deprecated API</h2></div></div></div>
+<div class="titlepage"><div><div><h1 class="title">
+<a name="deprecated-api-index"></a>Index of deprecated API</h1></div></div></div>
 <a name="idx"></a>
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/Documentation/api/html/hkl-array-size.html b/Documentation/api/html/hkl-array-size.html
index 25ce3a3..da6e6c9 100644
--- a/Documentation/api/html/hkl-array-size.html
+++ b/Documentation/api/html/hkl-array-size.html
@@ -2,30 +2,26 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>array_size</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<title>hkl Reference Manual: array_size</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="hkl Reference Manual">
 <link rel="up" href="ch01.html" title="[Insert title here]">
 <link rel="prev" href="ch01.html" title="[Insert title here]">
 <link rel="next" href="hkl-autodata.html" title="autodata">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
-<tr valign="middle">
-<td><a accesskey="p" href="ch01.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">hkl Reference Manual</th>
-<td><a accesskey="n" href="hkl-autodata.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
-</tr>
-<tr><td colspan="5" class="shortcuts">
-<a href="#hkl-array-size.synopsis" class="shortcut">Top</a>
-                   | 
-                  <a href="#hkl-array-size.description" class="shortcut">Description</a>
-</td></tr>
-</table>
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts">
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+                  <a href="#hkl-array-size.description" class="shortcut">Description</a></span>
+</td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="p" href="ch01.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="hkl-autodata.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
 <div class="refentry">
 <a name="hkl-array-size"></a><div class="titlepage"></div>
 <div class="refnamediv"><table width="100%"><tr>
@@ -33,27 +29,40 @@
 <h2><span class="refentrytitle"><a name="hkl-array-size.top_of_page"></a>array_size</span></h2>
 <p>array_size</p>
 </td>
-<td valign="top" align="right"></td>
+<td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
-<div class="refsynopsisdiv">
-<a name="hkl-array-size.synopsis"></a><h2>Synopsis</h2>
-<pre class="synopsis">#define             <a class="link" href="hkl-array-size.html#ARRAY-SIZE:CAPS" title="ARRAY_SIZE()">ARRAY_SIZE</a>                          (arr)
-</pre>
+<div class="refsect1">
+<a name="hkl-array-size.functions"></a><h2>Functions</h2>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="functions_return">
+<col class="functions_name">
+</colgroup>
+<tbody><tr>
+<td class="define_keyword">#define</td>
+<td class="function_name">
+<a class="link" href="hkl-array-size.html#ARRAY-SIZE:CAPS" title="ARRAY_SIZE()">ARRAY_SIZE</a><span class="c_punctuation">()</span>
+</td>
+</tr></tbody>
+</table></div>
 </div>
 <div class="refsect1">
 <a name="hkl-array-size.description"></a><h2>Description</h2>
 </div>
 <div class="refsect1">
-<a name="hkl-array-size.details"></a><h2>Details</h2>
+<a name="hkl-array-size.functions_details"></a><h2>Functions</h2>
 <div class="refsect2">
 <a name="ARRAY-SIZE:CAPS"></a><h3>ARRAY_SIZE()</h3>
 <pre class="programlisting">#define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0]) + _array_size_chk(arr))
 </pre>
 </div>
 </div>
+<div class="refsect1">
+<a name="hkl-array-size.other_details"></a><h2>Types and Values</h2>
+</div>
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/Documentation/api/html/hkl-autodata.html b/Documentation/api/html/hkl-autodata.html
index cb059c5..174ed0f 100644
--- a/Documentation/api/html/hkl-autodata.html
+++ b/Documentation/api/html/hkl-autodata.html
@@ -2,30 +2,26 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>autodata</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<title>hkl Reference Manual: autodata</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="hkl Reference Manual">
 <link rel="up" href="ch01.html" title="[Insert title here]">
 <link rel="prev" href="hkl-array-size.html" title="array_size">
 <link rel="next" href="hkl-build-assert.html" title="build_assert">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
-<tr valign="middle">
-<td><a accesskey="p" href="hkl-array-size.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">hkl Reference Manual</th>
-<td><a accesskey="n" href="hkl-build-assert.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
-</tr>
-<tr><td colspan="5" class="shortcuts">
-<a href="#hkl-autodata.synopsis" class="shortcut">Top</a>
-                   | 
-                  <a href="#hkl-autodata.description" class="shortcut">Description</a>
-</td></tr>
-</table>
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts">
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+                  <a href="#hkl-autodata.description" class="shortcut">Description</a></span>
+</td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="p" href="hkl-array-size.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="hkl-build-assert.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
 <div class="refentry">
 <a name="hkl-autodata"></a><div class="titlepage"></div>
 <div class="refnamediv"><table width="100%"><tr>
@@ -33,55 +29,101 @@
 <h2><span class="refentrytitle"><a name="hkl-autodata.top_of_page"></a>autodata</span></h2>
 <p>autodata</p>
 </td>
-<td valign="top" align="right"></td>
+<td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
-<div class="refsynopsisdiv">
-<a name="hkl-autodata.synopsis"></a><h2>Synopsis</h2>
-<pre class="synopsis">#define             <a class="link" href="hkl-autodata.html#AUTODATA:CAPS" title="AUTODATA()">AUTODATA</a>                            (name,
-                                                         ptr)
-#define             <a class="link" href="hkl-autodata.html#AUTODATA-MAGIC:CAPS" title="AUTODATA_MAGIC">AUTODATA_MAGIC</a>
-#define             <a class="link" href="hkl-autodata.html#AUTODATA-TYPE:CAPS" title="AUTODATA_TYPE()">AUTODATA_TYPE</a>                       (name,
-                                                         type)
-#define             <a class="link" href="hkl-autodata.html#AUTODATA-VAR-:CAPS" title="AUTODATA_VAR_()">AUTODATA_VAR_</a>                       (name,
-                                                         line)
-#define             <a class="link" href="hkl-autodata.html#AUTODATA-VAR--:CAPS" title="AUTODATA_VAR__()">AUTODATA_VAR__</a>                      (name,
-                                                         line)
-<span class="returnvalue">void</span>                <a class="link" href="hkl-autodata.html#autodata-free" title="autodata_free ()">autodata_free</a>                       (<em class="parameter"><code><span class="type">void</span> *p</code></em>);
-#define             <a class="link" href="hkl-autodata.html#autodata-get" title="autodata_get()">autodata_get</a>                        (name,
-                                                         nump)
-<span class="returnvalue">void</span> *              <a class="link" href="hkl-autodata.html#autodata-get-section" title="autodata_get_section ()">autodata_get_section</a>                (<em class="parameter"><code><span class="type">void</span> *start</code></em>,
-                                                         <em class="parameter"><code><span class="type">void</span> *stop</code></em>,
-                                                         <em class="parameter"><code><span class="type">size_t</span> *nump</code></em>);
-<span class="returnvalue">void</span> *              <a class="link" href="hkl-autodata.html#autodata-make-table" title="autodata_make_table ()">autodata_make_table</a>                 (<em class="parameter"><code>const <span class="type">void</span> *example</code></em>,
-                                                         <em class="parameter"><code>const <span class="type">char</span> *name</code></em>,
-                                                         <em class="parameter"><code><span class="type">size_t</span> *nump</code></em>);
-</pre>
+<div class="refsect1">
+<a name="hkl-autodata.functions"></a><h2>Functions</h2>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="functions_return">
+<col class="functions_name">
+</colgroup>
+<tbody>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name">
+<a class="link" href="hkl-autodata.html#AUTODATA-TYPE:CAPS" title="AUTODATA_TYPE()">AUTODATA_TYPE</a><span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name">
+<a class="link" href="hkl-autodata.html#AUTODATA:CAPS" title="AUTODATA()">AUTODATA</a><span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name">
+<a class="link" href="hkl-autodata.html#autodata-get" title="autodata_get()">autodata_get</a><span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="hkl-autodata.html#autodata-free" title="autodata_free ()">autodata_free</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name">
+<a class="link" href="hkl-autodata.html#AUTODATA-VAR--:CAPS" title="AUTODATA_VAR__()">AUTODATA_VAR__</a><span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name">
+<a class="link" href="hkl-autodata.html#AUTODATA-VAR-:CAPS" title="AUTODATA_VAR_()">AUTODATA_VAR_</a><span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span> *
+</td>
+<td class="function_name">
+<a class="link" href="hkl-autodata.html#autodata-get-section" title="autodata_get_section ()">autodata_get_section</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="hkl-autodata.html#AUTODATA-MAGIC:CAPS" title="AUTODATA_MAGIC">AUTODATA_MAGIC</a></td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span> *
+</td>
+<td class="function_name">
+<a class="link" href="hkl-autodata.html#autodata-make-table" title="autodata_make_table ()">autodata_make_table</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+</tbody>
+</table></div>
 </div>
 <div class="refsect1">
 <a name="hkl-autodata.description"></a><h2>Description</h2>
 </div>
 <div class="refsect1">
-<a name="hkl-autodata.details"></a><h2>Details</h2>
+<a name="hkl-autodata.functions_details"></a><h2>Functions</h2>
 <div class="refsect2">
-<a name="AUTODATA:CAPS"></a><h3>AUTODATA()</h3>
-<pre class="programlisting">#define             AUTODATA(name, ptr)</pre>
+<a name="AUTODATA-TYPE:CAPS"></a><h3>AUTODATA_TYPE()</h3>
+<pre class="programlisting">#define             AUTODATA_TYPE(name, type)</pre>
 </div>
 <hr>
 <div class="refsect2">
-<a name="AUTODATA-MAGIC:CAPS"></a><h3>AUTODATA_MAGIC</h3>
-<pre class="programlisting">#define AUTODATA_MAGIC ((long)0xFEEDA10DA7AF00D5ULL)
-</pre>
+<a name="AUTODATA:CAPS"></a><h3>AUTODATA()</h3>
+<pre class="programlisting">#define             AUTODATA(name, ptr)</pre>
 </div>
 <hr>
 <div class="refsect2">
-<a name="AUTODATA-TYPE:CAPS"></a><h3>AUTODATA_TYPE()</h3>
-<pre class="programlisting">#define             AUTODATA_TYPE(name, type)</pre>
+<a name="autodata-get"></a><h3>autodata_get()</h3>
+<pre class="programlisting">#define             autodata_get(name, nump)</pre>
 </div>
 <hr>
 <div class="refsect2">
-<a name="AUTODATA-VAR-:CAPS"></a><h3>AUTODATA_VAR_()</h3>
-<pre class="programlisting">#define AUTODATA_VAR_(name, line) AUTODATA_VAR__(name, line)
-</pre>
+<a name="autodata-free"></a><h3>autodata_free ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+autodata_free (<em class="parameter"><code><span class="type">void</span> *p</code></em>);</pre>
 </div>
 <hr>
 <div class="refsect2">
@@ -91,32 +133,39 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="autodata-free"></a><h3>autodata_free ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                autodata_free                       (<em class="parameter"><code><span class="type">void</span> *p</code></em>);</pre>
+<a name="AUTODATA-VAR-:CAPS"></a><h3>AUTODATA_VAR_()</h3>
+<pre class="programlisting">#define AUTODATA_VAR_(name, line) AUTODATA_VAR__(name, line)
+</pre>
 </div>
 <hr>
 <div class="refsect2">
-<a name="autodata-get"></a><h3>autodata_get()</h3>
-<pre class="programlisting">#define             autodata_get(name, nump)</pre>
+<a name="autodata-get-section"></a><h3>autodata_get_section ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span> *
+autodata_get_section (<em class="parameter"><code><span class="type">void</span> *start</code></em>,
+                      <em class="parameter"><code><span class="type">void</span> *stop</code></em>,
+                      <em class="parameter"><code><span class="type">size_t</span> *nump</code></em>);</pre>
 </div>
 <hr>
 <div class="refsect2">
-<a name="autodata-get-section"></a><h3>autodata_get_section ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span> *              autodata_get_section                (<em class="parameter"><code><span class="type">void</span> *start</code></em>,
-                                                         <em class="parameter"><code><span class="type">void</span> *stop</code></em>,
-                                                         <em class="parameter"><code><span class="type">size_t</span> *nump</code></em>);</pre>
+<a name="AUTODATA-MAGIC:CAPS"></a><h3>AUTODATA_MAGIC</h3>
+<pre class="programlisting">#define AUTODATA_MAGIC ((long)0xFEEDA10DA7AF00D5ULL)
+</pre>
 </div>
 <hr>
 <div class="refsect2">
-<a name="autodata-make-table"></a><h3>autodata_make_table ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span> *              autodata_make_table                 (<em class="parameter"><code>const <span class="type">void</span> *example</code></em>,
-                                                         <em class="parameter"><code>const <span class="type">char</span> *name</code></em>,
-                                                         <em class="parameter"><code><span class="type">size_t</span> *nump</code></em>);</pre>
+<a name="autodata-make-table"></a><h3>autodata_make_table ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span> *
+autodata_make_table (<em class="parameter"><code>const <span class="type">void</span> *example</code></em>,
+                     <em class="parameter"><code>const <span class="type">char</span> *name</code></em>,
+                     <em class="parameter"><code><span class="type">size_t</span> *nump</code></em>);</pre>
+</div>
 </div>
+<div class="refsect1">
+<a name="hkl-autodata.other_details"></a><h2>Types and Values</h2>
 </div>
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/Documentation/api/html/hkl-build-assert.html b/Documentation/api/html/hkl-build-assert.html
index 1ba850f..d3015c8 100644
--- a/Documentation/api/html/hkl-build-assert.html
+++ b/Documentation/api/html/hkl-build-assert.html
@@ -2,30 +2,26 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>build_assert</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<title>hkl Reference Manual: build_assert</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="hkl Reference Manual">
 <link rel="up" href="ch01.html" title="[Insert title here]">
 <link rel="prev" href="hkl-autodata.html" title="autodata">
 <link rel="next" href="hkl-check-type.html" title="check_type">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
-<tr valign="middle">
-<td><a accesskey="p" href="hkl-autodata.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">hkl Reference Manual</th>
-<td><a accesskey="n" href="hkl-check-type.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
-</tr>
-<tr><td colspan="5" class="shortcuts">
-<a href="#hkl-build-assert.synopsis" class="shortcut">Top</a>
-                   | 
-                  <a href="#hkl-build-assert.description" class="shortcut">Description</a>
-</td></tr>
-</table>
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts">
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+                  <a href="#hkl-build-assert.description" class="shortcut">Description</a></span>
+</td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="p" href="hkl-autodata.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="hkl-check-type.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
 <div class="refentry">
 <a name="hkl-build-assert"></a><div class="titlepage"></div>
 <div class="refnamediv"><table width="100%"><tr>
@@ -33,19 +29,36 @@
 <h2><span class="refentrytitle"><a name="hkl-build-assert.top_of_page"></a>build_assert</span></h2>
 <p>build_assert</p>
 </td>
-<td valign="top" align="right"></td>
+<td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
-<div class="refsynopsisdiv">
-<a name="hkl-build-assert.synopsis"></a><h2>Synopsis</h2>
-<pre class="synopsis">#define             <a class="link" href="hkl-build-assert.html#BUILD-ASSERT:CAPS" title="BUILD_ASSERT()">BUILD_ASSERT</a>                        (cond)
-#define             <a class="link" href="hkl-build-assert.html#BUILD-ASSERT-OR-ZERO:CAPS" title="BUILD_ASSERT_OR_ZERO()">BUILD_ASSERT_OR_ZERO</a>                (cond)
-</pre>
+<div class="refsect1">
+<a name="hkl-build-assert.functions"></a><h2>Functions</h2>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="functions_return">
+<col class="functions_name">
+</colgroup>
+<tbody>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name">
+<a class="link" href="hkl-build-assert.html#BUILD-ASSERT:CAPS" title="BUILD_ASSERT()">BUILD_ASSERT</a><span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name">
+<a class="link" href="hkl-build-assert.html#BUILD-ASSERT-OR-ZERO:CAPS" title="BUILD_ASSERT_OR_ZERO()">BUILD_ASSERT_OR_ZERO</a><span class="c_punctuation">()</span>
+</td>
+</tr>
+</tbody>
+</table></div>
 </div>
 <div class="refsect1">
 <a name="hkl-build-assert.description"></a><h2>Description</h2>
 </div>
 <div class="refsect1">
-<a name="hkl-build-assert.details"></a><h2>Details</h2>
+<a name="hkl-build-assert.functions_details"></a><h2>Functions</h2>
 <div class="refsect2">
 <a name="BUILD-ASSERT:CAPS"></a><h3>BUILD_ASSERT()</h3>
 <pre class="programlisting">#define             BUILD_ASSERT(cond)</pre>
@@ -56,9 +69,12 @@
 <pre class="programlisting">#define             BUILD_ASSERT_OR_ZERO(cond)</pre>
 </div>
 </div>
+<div class="refsect1">
+<a name="hkl-build-assert.other_details"></a><h2>Types and Values</h2>
+</div>
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/Documentation/api/html/hkl-check-type.html b/Documentation/api/html/hkl-check-type.html
index 73dc962..8d1cd8b 100644
--- a/Documentation/api/html/hkl-check-type.html
+++ b/Documentation/api/html/hkl-check-type.html
@@ -2,30 +2,26 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>check_type</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<title>hkl Reference Manual: check_type</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="hkl Reference Manual">
 <link rel="up" href="ch01.html" title="[Insert title here]">
 <link rel="prev" href="hkl-build-assert.html" title="build_assert">
 <link rel="next" href="hkl-compiler.html" title="compiler">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
-<tr valign="middle">
-<td><a accesskey="p" href="hkl-build-assert.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">hkl Reference Manual</th>
-<td><a accesskey="n" href="hkl-compiler.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
-</tr>
-<tr><td colspan="5" class="shortcuts">
-<a href="#hkl-check-type.synopsis" class="shortcut">Top</a>
-                   | 
-                  <a href="#hkl-check-type.description" class="shortcut">Description</a>
-</td></tr>
-</table>
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts">
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+                  <a href="#hkl-check-type.description" class="shortcut">Description</a></span>
+</td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="p" href="hkl-build-assert.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="hkl-compiler.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
 <div class="refentry">
 <a name="hkl-check-type"></a><div class="titlepage"></div>
 <div class="refnamediv"><table width="100%"><tr>
@@ -33,21 +29,36 @@
 <h2><span class="refentrytitle"><a name="hkl-check-type.top_of_page"></a>check_type</span></h2>
 <p>check_type</p>
 </td>
-<td valign="top" align="right"></td>
+<td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
-<div class="refsynopsisdiv">
-<a name="hkl-check-type.synopsis"></a><h2>Synopsis</h2>
-<pre class="synopsis">#define             <a class="link" href="hkl-check-type.html#check-type" title="check_type()">check_type</a>                          (expr,
-                                                         type)
-#define             <a class="link" href="hkl-check-type.html#check-types-match" title="check_types_match()">check_types_match</a>                   (expr1,
-                                                         expr2)
-</pre>
+<div class="refsect1">
+<a name="hkl-check-type.functions"></a><h2>Functions</h2>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="functions_return">
+<col class="functions_name">
+</colgroup>
+<tbody>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name">
+<a class="link" href="hkl-check-type.html#check-type" title="check_type()">check_type</a><span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name">
+<a class="link" href="hkl-check-type.html#check-types-match" title="check_types_match()">check_types_match</a><span class="c_punctuation">()</span>
+</td>
+</tr>
+</tbody>
+</table></div>
 </div>
 <div class="refsect1">
 <a name="hkl-check-type.description"></a><h2>Description</h2>
 </div>
 <div class="refsect1">
-<a name="hkl-check-type.details"></a><h2>Details</h2>
+<a name="hkl-check-type.functions_details"></a><h2>Functions</h2>
 <div class="refsect2">
 <a name="check-type"></a><h3>check_type()</h3>
 <pre class="programlisting">#define             check_type(expr, type)</pre>
@@ -58,9 +69,12 @@
 <pre class="programlisting">#define             check_types_match(expr1, expr2)</pre>
 </div>
 </div>
+<div class="refsect1">
+<a name="hkl-check-type.other_details"></a><h2>Types and Values</h2>
+</div>
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/Documentation/api/html/hkl-compiler.html b/Documentation/api/html/hkl-compiler.html
index b865750..4545081 100644
--- a/Documentation/api/html/hkl-compiler.html
+++ b/Documentation/api/html/hkl-compiler.html
@@ -2,30 +2,26 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>compiler</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<title>hkl Reference Manual: compiler</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="hkl Reference Manual">
 <link rel="up" href="ch01.html" title="[Insert title here]">
 <link rel="prev" href="hkl-check-type.html" title="check_type">
 <link rel="next" href="hkl-container-of.html" title="container_of">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
-<tr valign="middle">
-<td><a accesskey="p" href="hkl-check-type.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">hkl Reference Manual</th>
-<td><a accesskey="n" href="hkl-container-of.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
-</tr>
-<tr><td colspan="5" class="shortcuts">
-<a href="#hkl-compiler.synopsis" class="shortcut">Top</a>
-                   | 
-                  <a href="#hkl-compiler.description" class="shortcut">Description</a>
-</td></tr>
-</table>
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts">
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+                  <a href="#hkl-compiler.description" class="shortcut">Description</a></span>
+</td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="p" href="hkl-check-type.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="hkl-container-of.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
 <div class="refentry">
 <a name="hkl-compiler"></a><div class="titlepage"></div>
 <div class="refnamediv"><table width="100%"><tr>
@@ -33,38 +29,82 @@
 <h2><span class="refentrytitle"><a name="hkl-compiler.top_of_page"></a>compiler</span></h2>
 <p>compiler</p>
 </td>
-<td valign="top" align="right"></td>
+<td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
-<div class="refsynopsisdiv">
-<a name="hkl-compiler.synopsis"></a><h2>Synopsis</h2>
-<pre class="synopsis">#define             <a class="link" href="hkl-compiler.html#COLD:CAPS" title="COLD">COLD</a>
-#define             <a class="link" href="hkl-compiler.html#CONST-FUNCTION:CAPS" title="CONST_FUNCTION">CONST_FUNCTION</a>
-#define             <a class="link" href="hkl-compiler.html#IS-COMPILE-CONSTANT:CAPS" title="IS_COMPILE_CONSTANT()">IS_COMPILE_CONSTANT</a>                 (expr)
-#define             <a class="link" href="hkl-compiler.html#NEEDED:CAPS" title="NEEDED">NEEDED</a>
-#define             <a class="link" href="hkl-compiler.html#NORETURN:CAPS" title="NORETURN">NORETURN</a>
-#define             <a class="link" href="hkl-compiler.html#PRINTF-FMT:CAPS" title="PRINTF_FMT()">PRINTF_FMT</a>                          (nfmt,
-                                                         narg)
-#define             <a class="link" href="hkl-compiler.html#PURE-FUNCTION:CAPS" title="PURE_FUNCTION">PURE_FUNCTION</a>
-#define             <a class="link" href="hkl-compiler.html#UNNEEDED:CAPS" title="UNNEEDED">UNNEEDED</a>
-#define             <a class="link" href="hkl-compiler.html#UNUSED:CAPS" title="UNUSED">UNUSED</a>
-#define             <a class="link" href="hkl-compiler.html#WARN-UNUSED-RESULT:CAPS" title="WARN_UNUSED_RESULT">WARN_UNUSED_RESULT</a>
-</pre>
+<div class="refsect1">
+<a name="hkl-compiler.functions"></a><h2>Functions</h2>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="functions_return">
+<col class="functions_name">
+</colgroup>
+<tbody>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name">
+<a class="link" href="hkl-compiler.html#PRINTF-FMT:CAPS" title="PRINTF_FMT()">PRINTF_FMT</a><span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name">
+<a class="link" href="hkl-compiler.html#IS-COMPILE-CONSTANT:CAPS" title="IS_COMPILE_CONSTANT()">IS_COMPILE_CONSTANT</a><span class="c_punctuation">()</span>
+</td>
+</tr>
+</tbody>
+</table></div>
 </div>
 <div class="refsect1">
-<a name="hkl-compiler.description"></a><h2>Description</h2>
+<a name="hkl-compiler.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="name">
+<col class="description">
+</colgroup>
+<tbody>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="hkl-compiler.html#COLD:CAPS" title="COLD">COLD</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="hkl-compiler.html#NORETURN:CAPS" title="NORETURN">NORETURN</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="hkl-compiler.html#CONST-FUNCTION:CAPS" title="CONST_FUNCTION">CONST_FUNCTION</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="hkl-compiler.html#PURE-FUNCTION:CAPS" title="PURE_FUNCTION">PURE_FUNCTION</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="hkl-compiler.html#UNNEEDED:CAPS" title="UNNEEDED">UNNEEDED</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="hkl-compiler.html#NEEDED:CAPS" title="NEEDED">NEEDED</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="hkl-compiler.html#UNUSED:CAPS" title="UNUSED">UNUSED</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="hkl-compiler.html#WARN-UNUSED-RESULT:CAPS" title="WARN_UNUSED_RESULT">WARN_UNUSED_RESULT</a></td>
+</tr>
+</tbody>
+</table></div>
 </div>
 <div class="refsect1">
-<a name="hkl-compiler.details"></a><h2>Details</h2>
-<div class="refsect2">
-<a name="COLD:CAPS"></a><h3>COLD</h3>
-<pre class="programlisting">#define COLD __attribute__((__cold__))
-</pre>
+<a name="hkl-compiler.description"></a><h2>Description</h2>
 </div>
-<hr>
+<div class="refsect1">
+<a name="hkl-compiler.functions_details"></a><h2>Functions</h2>
 <div class="refsect2">
-<a name="CONST-FUNCTION:CAPS"></a><h3>CONST_FUNCTION</h3>
-<pre class="programlisting">#define CONST_FUNCTION __attribute__((__const__))
-</pre>
+<a name="PRINTF-FMT:CAPS"></a><h3>PRINTF_FMT()</h3>
+<pre class="programlisting">#define             PRINTF_FMT(nfmt, narg)</pre>
 </div>
 <hr>
 <div class="refsect2">
@@ -72,10 +112,12 @@
 <pre class="programlisting">#define IS_COMPILE_CONSTANT(expr) __builtin_constant_p(expr)
 </pre>
 </div>
-<hr>
+</div>
+<div class="refsect1">
+<a name="hkl-compiler.other_details"></a><h2>Types and Values</h2>
 <div class="refsect2">
-<a name="NEEDED:CAPS"></a><h3>NEEDED</h3>
-<pre class="programlisting">#define NEEDED __attribute__((__used__))
+<a name="COLD:CAPS"></a><h3>COLD</h3>
+<pre class="programlisting">#define COLD __attribute__((__cold__))
 </pre>
 </div>
 <hr>
@@ -85,8 +127,9 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="PRINTF-FMT:CAPS"></a><h3>PRINTF_FMT()</h3>
-<pre class="programlisting">#define             PRINTF_FMT(nfmt, narg)</pre>
+<a name="CONST-FUNCTION:CAPS"></a><h3>CONST_FUNCTION</h3>
+<pre class="programlisting">#define CONST_FUNCTION __attribute__((__const__))
+</pre>
 </div>
 <hr>
 <div class="refsect2">
@@ -102,6 +145,12 @@
 </div>
 <hr>
 <div class="refsect2">
+<a name="NEEDED:CAPS"></a><h3>NEEDED</h3>
+<pre class="programlisting">#define NEEDED __attribute__((__used__))
+</pre>
+</div>
+<hr>
+<div class="refsect2">
 <a name="UNUSED:CAPS"></a><h3>UNUSED</h3>
 <pre class="programlisting">#define UNUSED __attribute__((__unused__))
 </pre>
@@ -116,6 +165,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/Documentation/api/html/hkl-container-of.html b/Documentation/api/html/hkl-container-of.html
index a60d9f6..513c4af 100644
--- a/Documentation/api/html/hkl-container-of.html
+++ b/Documentation/api/html/hkl-container-of.html
@@ -2,30 +2,26 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>container_of</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<title>hkl Reference Manual: container_of</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="hkl Reference Manual">
 <link rel="up" href="ch01.html" title="[Insert title here]">
 <link rel="prev" href="hkl-compiler.html" title="compiler">
 <link rel="next" href="hkl-darray.html" title="darray">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
-<tr valign="middle">
-<td><a accesskey="p" href="hkl-compiler.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">hkl Reference Manual</th>
-<td><a accesskey="n" href="hkl-darray.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
-</tr>
-<tr><td colspan="5" class="shortcuts">
-<a href="#hkl-container-of.synopsis" class="shortcut">Top</a>
-                   | 
-                  <a href="#hkl-container-of.description" class="shortcut">Description</a>
-</td></tr>
-</table>
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts">
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+                  <a href="#hkl-container-of.description" class="shortcut">Description</a></span>
+</td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="p" href="hkl-compiler.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="hkl-darray.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
 <div class="refentry">
 <a name="hkl-container-of"></a><div class="titlepage"></div>
 <div class="refnamediv"><table width="100%"><tr>
@@ -33,40 +29,61 @@
 <h2><span class="refentrytitle"><a name="hkl-container-of.top_of_page"></a>container_of</span></h2>
 <p>container_of</p>
 </td>
-<td valign="top" align="right"></td>
+<td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
-<div class="refsynopsisdiv">
-<a name="hkl-container-of.synopsis"></a><h2>Synopsis</h2>
-<pre class="synopsis">#define             <a class="link" href="hkl-container-of.html#container-of" title="container_of()">container_of</a>                        (member_ptr,
-                                                         containing_type,
-                                                         member)
-#define             <a class="link" href="hkl-container-of.html#container-of-var" title="container_of_var()">container_of_var</a>                    (member_ptr,
-                                                         container_var,
-                                                         member)
-#define             <a class="link" href="hkl-container-of.html#container-off" title="container_off()">container_off</a>                       (containing_type,
-                                                         member)
-#define             <a class="link" href="hkl-container-of.html#container-off-var" title="container_off_var()">container_off_var</a>                   (var,
-                                                         member)
-</pre>
+<div class="refsect1">
+<a name="hkl-container-of.functions"></a><h2>Functions</h2>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="functions_return">
+<col class="functions_name">
+</colgroup>
+<tbody>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name">
+<a class="link" href="hkl-container-of.html#container-of" title="container_of()">container_of</a><span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name">
+<a class="link" href="hkl-container-of.html#container-off" title="container_off()">container_off</a><span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name">
+<a class="link" href="hkl-container-of.html#container-of-var" title="container_of_var()">container_of_var</a><span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name">
+<a class="link" href="hkl-container-of.html#container-off-var" title="container_off_var()">container_off_var</a><span class="c_punctuation">()</span>
+</td>
+</tr>
+</tbody>
+</table></div>
 </div>
 <div class="refsect1">
 <a name="hkl-container-of.description"></a><h2>Description</h2>
 </div>
 <div class="refsect1">
-<a name="hkl-container-of.details"></a><h2>Details</h2>
+<a name="hkl-container-of.functions_details"></a><h2>Functions</h2>
 <div class="refsect2">
 <a name="container-of"></a><h3>container_of()</h3>
 <pre class="programlisting">#define             container_of(member_ptr, containing_type, member)</pre>
 </div>
 <hr>
 <div class="refsect2">
-<a name="container-of-var"></a><h3>container_of_var()</h3>
-<pre class="programlisting">#define             container_of_var(member_ptr, container_var, member)</pre>
+<a name="container-off"></a><h3>container_off()</h3>
+<pre class="programlisting">#define             container_off(containing_type, member)</pre>
 </div>
 <hr>
 <div class="refsect2">
-<a name="container-off"></a><h3>container_off()</h3>
-<pre class="programlisting">#define             container_off(containing_type, member)</pre>
+<a name="container-of-var"></a><h3>container_of_var()</h3>
+<pre class="programlisting">#define             container_of_var(member_ptr, container_var, member)</pre>
 </div>
 <hr>
 <div class="refsect2">
@@ -74,9 +91,12 @@
 <pre class="programlisting">#define             container_off_var(var, member)</pre>
 </div>
 </div>
+<div class="refsect1">
+<a name="hkl-container-of.other_details"></a><h2>Types and Values</h2>
+</div>
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/Documentation/api/html/hkl-darray.html b/Documentation/api/html/hkl-darray.html
index e235cc2..aa1fcf7 100644
--- a/Documentation/api/html/hkl-darray.html
+++ b/Documentation/api/html/hkl-darray.html
@@ -2,30 +2,26 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>darray</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<title>hkl Reference Manual: darray</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="hkl Reference Manual">
 <link rel="up" href="ch01.html" title="[Insert title here]">
 <link rel="prev" href="hkl-container-of.html" title="container_of">
 <link rel="next" href="hkl-hkl.html" title="hkl">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
-<tr valign="middle">
-<td><a accesskey="p" href="hkl-container-of.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">hkl Reference Manual</th>
-<td><a accesskey="n" href="hkl-hkl.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
-</tr>
-<tr><td colspan="5" class="shortcuts">
-<a href="#hkl-darray.synopsis" class="shortcut">Top</a>
-                   | 
-                  <a href="#hkl-darray.description" class="shortcut">Description</a>
-</td></tr>
-</table>
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts">
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+                  <a href="#hkl-darray.description" class="shortcut">Description</a></span>
+</td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="p" href="hkl-container-of.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="hkl-hkl.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
 <div class="refentry">
 <a name="hkl-darray"></a><div class="titlepage"></div>
 <div class="refnamediv"><table width="100%"><tr>
@@ -33,95 +29,287 @@
 <h2><span class="refentrytitle"><a name="hkl-darray.top_of_page"></a>darray</span></h2>
 <p>darray</p>
 </td>
-<td valign="top" align="right"></td>
+<td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
-<div class="refsynopsisdiv">
-<a name="hkl-darray.synopsis"></a><h2>Synopsis</h2>
-<pre class="synopsis">#define             <a class="link" href="hkl-darray.html#darray" title="darray()">darray</a>                              (type)
-#define             <a class="link" href="hkl-darray.html#darray-alloc" title="darray_alloc()">darray_alloc</a>                        (arr)
-#define             <a class="link" href="hkl-darray.html#darray-append" title="darray_append()">darray_append</a>                       (arr,
-                                                         ...)
-#define             <a class="link" href="hkl-darray.html#darray-append-items" title="darray_append_items()">darray_append_items</a>                 (arr,
-                                                         items,
-                                                         count)
-#define             <a class="link" href="hkl-darray.html#darray-append-items-nullterminate" title="darray_append_items_nullterminate()">darray_append_items_nullterminate</a>   (arr,
-                                                         items,
-                                                         count)
-#define             <a class="link" href="hkl-darray.html#darray-append-lit" title="darray_append_lit()">darray_append_lit</a>                   (arr,
-                                                         stringLiteral)
-#define             <a class="link" href="hkl-darray.html#darray-append-string" title="darray_append_string()">darray_append_string</a>                (arr,
-                                                         str)
-#define             <a class="link" href="hkl-darray.html#darray-appends" title="darray_appends()">darray_appends</a>                      (arr,
-                                                         ...)
-#define             <a class="link" href="hkl-darray.html#darray-appends-t" title="darray_appends_t()">darray_appends_t</a>                    (arr,
-                                                         type,
-                                                         ...)
-typedef             <a class="link" href="hkl-darray.html#darray-char" title="darray_char">darray_char</a>;
-#define             <a class="link" href="hkl-darray.html#darray-empty" title="darray_empty()">darray_empty</a>                        (arr)
-#define             <a class="link" href="hkl-darray.html#darray-foreach" title="darray_foreach()">darray_foreach</a>                      (i,
-                                                         arr)
-#define             <a class="link" href="hkl-darray.html#darray-foreach-reverse" title="darray_foreach_reverse()">darray_foreach_reverse</a>              (i,
-                                                         arr)
-#define             <a class="link" href="hkl-darray.html#darray-free" title="darray_free()">darray_free</a>                         (arr)
-#define             <a class="link" href="hkl-darray.html#darray-from-c" title="darray_from_c()">darray_from_c</a>                       (arr,
-                                                         c_array)
-#define             <a class="link" href="hkl-darray.html#darray-from-items" title="darray_from_items()">darray_from_items</a>                   (arr,
-                                                         items,
-                                                         count)
-#define             <a class="link" href="hkl-darray.html#darray-from-lit" title="darray_from_lit()">darray_from_lit</a>                     (arr,
-                                                         stringLiteral)
-#define             <a class="link" href="hkl-darray.html#darray-from-string" title="darray_from_string()">darray_from_string</a>                  (arr,
-                                                         str)
-#define             <a class="link" href="hkl-darray.html#darray-growalloc" title="darray_growalloc()">darray_growalloc</a>                    (arr,
-                                                         need)
-#define             <a class="link" href="hkl-darray.html#darray-init" title="darray_init()">darray_init</a>                         (arr)
-typedef             <a class="link" href="hkl-darray.html#darray-int" title="darray_int">darray_int</a>;
-<span class="returnvalue">return</span>              <a class="link" href="hkl-darray.html#darray-item" title="darray_item ()">darray_item</a>                         ();
-typedef             <a class="link" href="hkl-darray.html#darray-long" title="darray_long">darray_long</a>;
-#define             <a class="link" href="hkl-darray.html#darray-make-room" title="darray_make_room()">darray_make_room</a>                    (arr,
-                                                         room)
-#define             <a class="link" href="hkl-darray.html#darray-new" title="darray_new">darray_new</a>
-#define             <a class="link" href="hkl-darray.html#darray-pop" title="darray_pop()">darray_pop</a>                          (arr)
-#define             <a class="link" href="hkl-darray.html#darray-pop-check" title="darray_pop_check()">darray_pop_check</a>                    (arr)
-#define             <a class="link" href="hkl-darray.html#darray-prepend" title="darray_prepend()">darray_prepend</a>                      (arr,
-                                                         ...)
-#define             <a class="link" href="hkl-darray.html#darray-prepend-items" title="darray_prepend_items()">darray_prepend_items</a>                (arr,
-                                                         items,
-                                                         count)
-#define             <a class="link" href="hkl-darray.html#darray-prepend-items-nullterminate" title="darray_prepend_items_nullterminate()">darray_prepend_items_nullterminate</a>  (arr,
-                                                         items,
-                                                         count)
-#define             <a class="link" href="hkl-darray.html#darray-prepend-lit" title="darray_prepend_lit()">darray_prepend_lit</a>                  (arr,
-                                                         stringLiteral)
-#define             <a class="link" href="hkl-darray.html#darray-prepend-string" title="darray_prepend_string()">darray_prepend_string</a>               (arr,
-                                                         str)
-#define             <a class="link" href="hkl-darray.html#darray-prepends" title="darray_prepends()">darray_prepends</a>                     (arr,
-                                                         ...)
-#define             <a class="link" href="hkl-darray.html#darray-prepends-t" title="darray_prepends_t()">darray_prepends_t</a>                   (arr,
-                                                         type,
-                                                         ...)
-#define             <a class="link" href="hkl-darray.html#darray-push" title="darray_push()">darray_push</a>                         (arr,
-                                                         ...)
-#define             <a class="link" href="hkl-darray.html#darray-realloc" title="darray_realloc()">darray_realloc</a>                      (arr,
-                                                         newAlloc)
-#define             <a class="link" href="hkl-darray.html#darray-resize" title="darray_resize()">darray_resize</a>                       (arr,
-                                                         newSize)
-#define             <a class="link" href="hkl-darray.html#darray-resize0" title="darray_resize0()">darray_resize0</a>                      (arr,
-                                                         newSize)
-typedef             <a class="link" href="hkl-darray.html#darray-schar" title="darray_schar">darray_schar</a>;
-typedef             <a class="link" href="hkl-darray.html#darray-short" title="darray_short">darray_short</a>;
-#define             <a class="link" href="hkl-darray.html#darray-size" title="darray_size()">darray_size</a>                         (arr)
-typedef             <a class="link" href="hkl-darray.html#darray-uchar" title="darray_uchar">darray_uchar</a>;
-typedef             <a class="link" href="hkl-darray.html#darray-uint" title="darray_uint">darray_uint</a>;
-typedef             <a class="link" href="hkl-darray.html#darray-ulong" title="darray_ulong">darray_ulong</a>;
-typedef             <a class="link" href="hkl-darray.html#darray-ushort" title="darray_ushort">darray_ushort</a>;
-</pre>
+<div class="refsect1">
+<a name="hkl-darray.functions"></a><h2>Functions</h2>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="functions_return">
+<col class="functions_name">
+</colgroup>
+<tbody>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name">
+<a class="link" href="hkl-darray.html#darray" title="darray()">darray</a><span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="hkl-darray.html#darray-new" title="darray_new">darray_new</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name">
+<a class="link" href="hkl-darray.html#darray-init" title="darray_init()">darray_init</a><span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name">
+<a class="link" href="hkl-darray.html#darray-free" title="darray_free()">darray_free</a><span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">return</span>
+</td>
+<td class="function_name">
+<a class="link" href="hkl-darray.html#darray-item" title="darray_item ()">darray_item</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name">
+<a class="link" href="hkl-darray.html#darray-size" title="darray_size()">darray_size</a><span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name">
+<a class="link" href="hkl-darray.html#darray-alloc" title="darray_alloc()">darray_alloc</a><span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name">
+<a class="link" href="hkl-darray.html#darray-empty" title="darray_empty()">darray_empty</a><span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name">
+<a class="link" href="hkl-darray.html#darray-append" title="darray_append()">darray_append</a><span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name">
+<a class="link" href="hkl-darray.html#darray-prepend" title="darray_prepend()">darray_prepend</a><span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name">
+<a class="link" href="hkl-darray.html#darray-push" title="darray_push()">darray_push</a><span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name">
+<a class="link" href="hkl-darray.html#darray-append-items" title="darray_append_items()">darray_append_items</a><span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name">
+<a class="link" href="hkl-darray.html#darray-prepend-items" title="darray_prepend_items()">darray_prepend_items</a><span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name">
+<a class="link" href="hkl-darray.html#darray-append-items-nullterminate" title="darray_append_items_nullterminate()">darray_append_items_nullterminate</a><span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name">
+<a class="link" href="hkl-darray.html#darray-prepend-items-nullterminate" title="darray_prepend_items_nullterminate()">darray_prepend_items_nullterminate</a><span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name">
+<a class="link" href="hkl-darray.html#darray-appends" title="darray_appends()">darray_appends</a><span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name">
+<a class="link" href="hkl-darray.html#darray-prepends" title="darray_prepends()">darray_prepends</a><span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name">
+<a class="link" href="hkl-darray.html#darray-appends-t" title="darray_appends_t()">darray_appends_t</a><span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name">
+<a class="link" href="hkl-darray.html#darray-prepends-t" title="darray_prepends_t()">darray_prepends_t</a><span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name">
+<a class="link" href="hkl-darray.html#darray-pop" title="darray_pop()">darray_pop</a><span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name">
+<a class="link" href="hkl-darray.html#darray-pop-check" title="darray_pop_check()">darray_pop_check</a><span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name">
+<a class="link" href="hkl-darray.html#darray-from-items" title="darray_from_items()">darray_from_items</a><span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name">
+<a class="link" href="hkl-darray.html#darray-from-c" title="darray_from_c()">darray_from_c</a><span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name">
+<a class="link" href="hkl-darray.html#darray-append-string" title="darray_append_string()">darray_append_string</a><span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name">
+<a class="link" href="hkl-darray.html#darray-append-lit" title="darray_append_lit()">darray_append_lit</a><span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name">
+<a class="link" href="hkl-darray.html#darray-prepend-string" title="darray_prepend_string()">darray_prepend_string</a><span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name">
+<a class="link" href="hkl-darray.html#darray-prepend-lit" title="darray_prepend_lit()">darray_prepend_lit</a><span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name">
+<a class="link" href="hkl-darray.html#darray-from-string" title="darray_from_string()">darray_from_string</a><span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name">
+<a class="link" href="hkl-darray.html#darray-from-lit" title="darray_from_lit()">darray_from_lit</a><span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name">
+<a class="link" href="hkl-darray.html#darray-resize" title="darray_resize()">darray_resize</a><span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name">
+<a class="link" href="hkl-darray.html#darray-resize0" title="darray_resize0()">darray_resize0</a><span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name">
+<a class="link" href="hkl-darray.html#darray-realloc" title="darray_realloc()">darray_realloc</a><span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name">
+<a class="link" href="hkl-darray.html#darray-growalloc" title="darray_growalloc()">darray_growalloc</a><span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name">
+<a class="link" href="hkl-darray.html#darray-make-room" title="darray_make_room()">darray_make_room</a><span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name">
+<a class="link" href="hkl-darray.html#darray-foreach" title="darray_foreach()">darray_foreach</a><span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name">
+<a class="link" href="hkl-darray.html#darray-foreach-reverse" title="darray_foreach_reverse()">darray_foreach_reverse</a><span class="c_punctuation">()</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="hkl-darray.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="name">
+<col class="description">
+</colgroup>
+<tbody>
+<tr>
+<td class="typedef_keyword">typedef</td>
+<td class="function_name"><a class="link" href="hkl-darray.html#darray-char" title="darray_char">darray_char</a></td>
+</tr>
+<tr>
+<td class="typedef_keyword">typedef</td>
+<td class="function_name"><a class="link" href="hkl-darray.html#darray-schar" title="darray_schar">darray_schar</a></td>
+</tr>
+<tr>
+<td class="typedef_keyword">typedef</td>
+<td class="function_name"><a class="link" href="hkl-darray.html#darray-uchar" title="darray_uchar">darray_uchar</a></td>
+</tr>
+<tr>
+<td class="typedef_keyword">typedef</td>
+<td class="function_name"><a class="link" href="hkl-darray.html#darray-short" title="darray_short">darray_short</a></td>
+</tr>
+<tr>
+<td class="typedef_keyword">typedef</td>
+<td class="function_name"><a class="link" href="hkl-darray.html#darray-int" title="darray_int">darray_int</a></td>
+</tr>
+<tr>
+<td class="typedef_keyword">typedef</td>
+<td class="function_name"><a class="link" href="hkl-darray.html#darray-long" title="darray_long">darray_long</a></td>
+</tr>
+<tr>
+<td class="typedef_keyword">typedef</td>
+<td class="function_name"><a class="link" href="hkl-darray.html#darray-ushort" title="darray_ushort">darray_ushort</a></td>
+</tr>
+<tr>
+<td class="typedef_keyword">typedef</td>
+<td class="function_name"><a class="link" href="hkl-darray.html#darray-uint" title="darray_uint">darray_uint</a></td>
+</tr>
+<tr>
+<td class="typedef_keyword">typedef</td>
+<td class="function_name"><a class="link" href="hkl-darray.html#darray-ulong" title="darray_ulong">darray_ulong</a></td>
+</tr>
+</tbody>
+</table></div>
 </div>
 <div class="refsect1">
 <a name="hkl-darray.description"></a><h2>Description</h2>
 </div>
 <div class="refsect1">
-<a name="hkl-darray.details"></a><h2>Details</h2>
+<a name="hkl-darray.functions_details"></a><h2>Functions</h2>
 <div class="refsect2">
 <a name="darray"></a><h3>darray()</h3>
 <pre class="programlisting">#define darray(type) struct {type *item; size_t size; size_t alloc;}
@@ -129,209 +317,206 @@ typedef             <a class="link" href="hkl-darray.html#darray-ushort" title="
 </div>
 <hr>
 <div class="refsect2">
-<a name="darray-alloc"></a><h3>darray_alloc()</h3>
-<pre class="programlisting">#define darray_alloc(arr)   ((arr).alloc)
+<a name="darray-new"></a><h3>darray_new</h3>
+<pre class="programlisting">#define darray_new() {0,0,0}
 </pre>
 </div>
 <hr>
 <div class="refsect2">
-<a name="darray-append"></a><h3>darray_append()</h3>
-<pre class="programlisting">#define             darray_append(arr, ...)</pre>
+<a name="darray-init"></a><h3>darray_init()</h3>
+<pre class="programlisting">#define darray_init(arr) do {(arr).item=0; (arr).size=0; (arr).alloc=0;} while(0)
+</pre>
 </div>
 <hr>
 <div class="refsect2">
-<a name="darray-append-items"></a><h3>darray_append_items()</h3>
-<pre class="programlisting">#define             darray_append_items(arr, items, count)</pre>
+<a name="darray-free"></a><h3>darray_free()</h3>
+<pre class="programlisting">#define darray_free(arr) do {free((arr).item);} while(0)
+</pre>
 </div>
 <hr>
 <div class="refsect2">
-<a name="darray-append-items-nullterminate"></a><h3>darray_append_items_nullterminate()</h3>
-<pre class="programlisting">#define             darray_append_items_nullterminate(arr, items, count)</pre>
+<a name="darray-item"></a><h3>darray_item ()</h3>
+<pre class="programlisting"><span class="returnvalue">return</span>
+darray_item ();</pre>
 </div>
 <hr>
 <div class="refsect2">
-<a name="darray-append-lit"></a><h3>darray_append_lit()</h3>
-<pre class="programlisting">#define darray_append_lit(arr, stringLiteral) do {darray_append_items(arr, stringLiteral, sizeof(stringLiteral)); (arr).size--;} while(0)
+<a name="darray-size"></a><h3>darray_size()</h3>
+<pre class="programlisting">#define darray_size(arr)    ((arr).size)
 </pre>
 </div>
 <hr>
 <div class="refsect2">
-<a name="darray-append-string"></a><h3>darray_append_string()</h3>
-<pre class="programlisting">#define darray_append_string(arr, str) do {const char *__str = (str); darray_append_items(arr, __str, strlen(__str)+1); (arr).size--;} while(0)
+<a name="darray-alloc"></a><h3>darray_alloc()</h3>
+<pre class="programlisting">#define darray_alloc(arr)   ((arr).alloc)
 </pre>
 </div>
 <hr>
 <div class="refsect2">
-<a name="darray-appends"></a><h3>darray_appends()</h3>
-<pre class="programlisting">#define darray_appends(arr, ...) darray_appends_t(arr, typeof((*(arr).item)), __VA_ARGS__)
+<a name="darray-empty"></a><h3>darray_empty()</h3>
+<pre class="programlisting">#define darray_empty(arr)   ((arr).size == 0)
 </pre>
 </div>
 <hr>
 <div class="refsect2">
-<a name="darray-appends-t"></a><h3>darray_appends_t()</h3>
-<pre class="programlisting">#define             darray_appends_t(arr, type, ...)</pre>
+<a name="darray-append"></a><h3>darray_append()</h3>
+<pre class="programlisting">#define             darray_append(arr, ...)</pre>
 </div>
 <hr>
 <div class="refsect2">
-<a name="darray-char"></a><h3>darray_char</h3>
-<pre class="programlisting">typedef darray(char)           darray_char;
-</pre>
+<a name="darray-prepend"></a><h3>darray_prepend()</h3>
+<pre class="programlisting">#define             darray_prepend(arr, ...)</pre>
 </div>
 <hr>
 <div class="refsect2">
-<a name="darray-empty"></a><h3>darray_empty()</h3>
-<pre class="programlisting">#define darray_empty(arr)   ((arr).size == 0)
+<a name="darray-push"></a><h3>darray_push()</h3>
+<pre class="programlisting">#define darray_push(arr, ...) darray_append(arr, __VA_ARGS__)
 </pre>
 </div>
 <hr>
 <div class="refsect2">
-<a name="darray-foreach"></a><h3>darray_foreach()</h3>
-<pre class="programlisting">#define             darray_foreach(i, arr)</pre>
+<a name="darray-append-items"></a><h3>darray_append_items()</h3>
+<pre class="programlisting">#define             darray_append_items(arr, items, count)</pre>
 </div>
 <hr>
 <div class="refsect2">
-<a name="darray-foreach-reverse"></a><h3>darray_foreach_reverse()</h3>
-<pre class="programlisting">#define             darray_foreach_reverse(i, arr)</pre>
+<a name="darray-prepend-items"></a><h3>darray_prepend_items()</h3>
+<pre class="programlisting">#define             darray_prepend_items(arr, items, count)</pre>
 </div>
 <hr>
 <div class="refsect2">
-<a name="darray-free"></a><h3>darray_free()</h3>
-<pre class="programlisting">#define darray_free(arr) do {free((arr).item);} while(0)
-</pre>
+<a name="darray-append-items-nullterminate"></a><h3>darray_append_items_nullterminate()</h3>
+<pre class="programlisting">#define             darray_append_items_nullterminate(arr, items, count)</pre>
 </div>
 <hr>
 <div class="refsect2">
-<a name="darray-from-c"></a><h3>darray_from_c()</h3>
-<pre class="programlisting">#define darray_from_c(arr, c_array) darray_from_items(arr, c_array, sizeof(c_array)/sizeof(*(c_array)))
-</pre>
+<a name="darray-prepend-items-nullterminate"></a><h3>darray_prepend_items_nullterminate()</h3>
+<pre class="programlisting">#define             darray_prepend_items_nullterminate(arr, items, count)</pre>
 </div>
 <hr>
 <div class="refsect2">
-<a name="darray-from-items"></a><h3>darray_from_items()</h3>
-<pre class="programlisting">#define darray_from_items(arr, items, count) do {size_t __count = (count); darray_resize(arr, __count); memcpy((arr).item, items, __count*sizeof(*(arr).item));} while(0)
+<a name="darray-appends"></a><h3>darray_appends()</h3>
+<pre class="programlisting">#define darray_appends(arr, ...) darray_appends_t(arr, typeof((*(arr).item)), __VA_ARGS__)
 </pre>
 </div>
 <hr>
 <div class="refsect2">
-<a name="darray-from-lit"></a><h3>darray_from_lit()</h3>
-<pre class="programlisting">#define darray_from_lit(arr, stringLiteral) do {darray_from_items(arr, stringLiteral, sizeof(stringLiteral)); (arr).size--;} while(0)
+<a name="darray-prepends"></a><h3>darray_prepends()</h3>
+<pre class="programlisting">#define darray_prepends(arr, ...) darray_prepends_t(arr, typeof((*(arr).item)), __VA_ARGS__)
 </pre>
 </div>
 <hr>
 <div class="refsect2">
-<a name="darray-from-string"></a><h3>darray_from_string()</h3>
-<pre class="programlisting">#define darray_from_string(arr, str) do {const char *__str = (str); darray_from_items(arr, __str, strlen(__str)+1); (arr).size--;} while(0)
-</pre>
+<a name="darray-appends-t"></a><h3>darray_appends_t()</h3>
+<pre class="programlisting">#define             darray_appends_t(arr, type, ...)</pre>
 </div>
 <hr>
 <div class="refsect2">
-<a name="darray-growalloc"></a><h3>darray_growalloc()</h3>
-<pre class="programlisting">#define             darray_growalloc(arr, need)</pre>
+<a name="darray-prepends-t"></a><h3>darray_prepends_t()</h3>
+<pre class="programlisting">#define             darray_prepends_t(arr, type, ...)</pre>
 </div>
 <hr>
 <div class="refsect2">
-<a name="darray-init"></a><h3>darray_init()</h3>
-<pre class="programlisting">#define darray_init(arr) do {(arr).item=0; (arr).size=0; (arr).alloc=0;} while(0)
+<a name="darray-pop"></a><h3>darray_pop()</h3>
+<pre class="programlisting">#define darray_pop(arr) ((arr).item[--(arr).size])
 </pre>
 </div>
 <hr>
 <div class="refsect2">
-<a name="darray-int"></a><h3>darray_int</h3>
-<pre class="programlisting">typedef darray(int)            darray_int;
+<a name="darray-pop-check"></a><h3>darray_pop_check()</h3>
+<pre class="programlisting">#define darray_pop_check(arr) ((arr).size ? darray_pop(arr) : NULL)
 </pre>
 </div>
 <hr>
 <div class="refsect2">
-<a name="darray-item"></a><h3>darray_item ()</h3>
-<pre class="programlisting"><span class="returnvalue">return</span>              darray_item                         ();</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="darray-long"></a><h3>darray_long</h3>
-<pre class="programlisting">typedef darray(long)           darray_long;
+<a name="darray-from-items"></a><h3>darray_from_items()</h3>
+<pre class="programlisting">#define darray_from_items(arr, items, count) do {size_t __count = (count); darray_resize(arr, __count); memcpy((arr).item, items, __count*sizeof(*(arr).item));} while(0)
 </pre>
 </div>
 <hr>
 <div class="refsect2">
-<a name="darray-make-room"></a><h3>darray_make_room()</h3>
-<pre class="programlisting">#define darray_make_room(arr, room) ({size_t newAlloc = (arr).size+(room); if ((arr).alloc<newAlloc) darray_realloc(arr, newAlloc); (arr).item+(arr).size; })
+<a name="darray-from-c"></a><h3>darray_from_c()</h3>
+<pre class="programlisting">#define darray_from_c(arr, c_array) darray_from_items(arr, c_array, sizeof(c_array)/sizeof(*(c_array)))
 </pre>
 </div>
 <hr>
 <div class="refsect2">
-<a name="darray-new"></a><h3>darray_new</h3>
-<pre class="programlisting">#define darray_new() {0,0,0}
+<a name="darray-append-string"></a><h3>darray_append_string()</h3>
+<pre class="programlisting">#define darray_append_string(arr, str) do {const char *__str = (str); darray_append_items(arr, __str, strlen(__str)+1); (arr).size--;} while(0)
 </pre>
 </div>
 <hr>
 <div class="refsect2">
-<a name="darray-pop"></a><h3>darray_pop()</h3>
-<pre class="programlisting">#define darray_pop(arr) ((arr).item[--(arr).size])
+<a name="darray-append-lit"></a><h3>darray_append_lit()</h3>
+<pre class="programlisting">#define darray_append_lit(arr, stringLiteral) do {darray_append_items(arr, stringLiteral, sizeof(stringLiteral)); (arr).size--;} while(0)
 </pre>
 </div>
 <hr>
 <div class="refsect2">
-<a name="darray-pop-check"></a><h3>darray_pop_check()</h3>
-<pre class="programlisting">#define darray_pop_check(arr) ((arr).size ? darray_pop(arr) : NULL)
-</pre>
+<a name="darray-prepend-string"></a><h3>darray_prepend_string()</h3>
+<pre class="programlisting">#define             darray_prepend_string(arr, str)</pre>
 </div>
 <hr>
 <div class="refsect2">
-<a name="darray-prepend"></a><h3>darray_prepend()</h3>
-<pre class="programlisting">#define             darray_prepend(arr, ...)</pre>
+<a name="darray-prepend-lit"></a><h3>darray_prepend_lit()</h3>
+<pre class="programlisting">#define             darray_prepend_lit(arr, stringLiteral)</pre>
 </div>
 <hr>
 <div class="refsect2">
-<a name="darray-prepend-items"></a><h3>darray_prepend_items()</h3>
-<pre class="programlisting">#define             darray_prepend_items(arr, items, count)</pre>
+<a name="darray-from-string"></a><h3>darray_from_string()</h3>
+<pre class="programlisting">#define darray_from_string(arr, str) do {const char *__str = (str); darray_from_items(arr, __str, strlen(__str)+1); (arr).size--;} while(0)
+</pre>
 </div>
 <hr>
 <div class="refsect2">
-<a name="darray-prepend-items-nullterminate"></a><h3>darray_prepend_items_nullterminate()</h3>
-<pre class="programlisting">#define             darray_prepend_items_nullterminate(arr, items, count)</pre>
+<a name="darray-from-lit"></a><h3>darray_from_lit()</h3>
+<pre class="programlisting">#define darray_from_lit(arr, stringLiteral) do {darray_from_items(arr, stringLiteral, sizeof(stringLiteral)); (arr).size--;} while(0)
+</pre>
 </div>
 <hr>
 <div class="refsect2">
-<a name="darray-prepend-lit"></a><h3>darray_prepend_lit()</h3>
-<pre class="programlisting">#define             darray_prepend_lit(arr, stringLiteral)</pre>
+<a name="darray-resize"></a><h3>darray_resize()</h3>
+<pre class="programlisting">#define darray_resize(arr, newSize) darray_growalloc(arr, (arr).size = (newSize))
+</pre>
 </div>
 <hr>
 <div class="refsect2">
-<a name="darray-prepend-string"></a><h3>darray_prepend_string()</h3>
-<pre class="programlisting">#define             darray_prepend_string(arr, str)</pre>
+<a name="darray-resize0"></a><h3>darray_resize0()</h3>
+<pre class="programlisting">#define             darray_resize0(arr, newSize)</pre>
 </div>
 <hr>
 <div class="refsect2">
-<a name="darray-prepends"></a><h3>darray_prepends()</h3>
-<pre class="programlisting">#define darray_prepends(arr, ...) darray_prepends_t(arr, typeof((*(arr).item)), __VA_ARGS__)
-</pre>
+<a name="darray-realloc"></a><h3>darray_realloc()</h3>
+<pre class="programlisting">#define             darray_realloc(arr, newAlloc)</pre>
 </div>
 <hr>
 <div class="refsect2">
-<a name="darray-prepends-t"></a><h3>darray_prepends_t()</h3>
-<pre class="programlisting">#define             darray_prepends_t(arr, type, ...)</pre>
+<a name="darray-growalloc"></a><h3>darray_growalloc()</h3>
+<pre class="programlisting">#define             darray_growalloc(arr, need)</pre>
 </div>
 <hr>
 <div class="refsect2">
-<a name="darray-push"></a><h3>darray_push()</h3>
-<pre class="programlisting">#define darray_push(arr, ...) darray_append(arr, __VA_ARGS__)
+<a name="darray-make-room"></a><h3>darray_make_room()</h3>
+<pre class="programlisting">#define darray_make_room(arr, room) ({size_t newAlloc = (arr).size+(room); if ((arr).alloc<newAlloc) darray_realloc(arr, newAlloc); (arr).item+(arr).size; })
 </pre>
 </div>
 <hr>
 <div class="refsect2">
-<a name="darray-realloc"></a><h3>darray_realloc()</h3>
-<pre class="programlisting">#define             darray_realloc(arr, newAlloc)</pre>
+<a name="darray-foreach"></a><h3>darray_foreach()</h3>
+<pre class="programlisting">#define             darray_foreach(i, arr)</pre>
 </div>
 <hr>
 <div class="refsect2">
-<a name="darray-resize"></a><h3>darray_resize()</h3>
-<pre class="programlisting">#define darray_resize(arr, newSize) darray_growalloc(arr, (arr).size = (newSize))
-</pre>
+<a name="darray-foreach-reverse"></a><h3>darray_foreach_reverse()</h3>
+<pre class="programlisting">#define             darray_foreach_reverse(i, arr)</pre>
 </div>
-<hr>
+</div>
+<div class="refsect1">
+<a name="hkl-darray.other_details"></a><h2>Types and Values</h2>
 <div class="refsect2">
-<a name="darray-resize0"></a><h3>darray_resize0()</h3>
-<pre class="programlisting">#define             darray_resize0(arr, newSize)</pre>
+<a name="darray-char"></a><h3>darray_char</h3>
+<pre class="programlisting">typedef darray(char)           darray_char;
+</pre>
 </div>
 <hr>
 <div class="refsect2">
@@ -341,44 +526,50 @@ typedef             <a class="link" href="hkl-darray.html#darray-ushort" title="
 </div>
 <hr>
 <div class="refsect2">
+<a name="darray-uchar"></a><h3>darray_uchar</h3>
+<pre class="programlisting">typedef darray(unsigned char)  darray_uchar;
+</pre>
+</div>
+<hr>
+<div class="refsect2">
 <a name="darray-short"></a><h3>darray_short</h3>
 <pre class="programlisting">typedef darray(short)          darray_short;
 </pre>
 </div>
 <hr>
 <div class="refsect2">
-<a name="darray-size"></a><h3>darray_size()</h3>
-<pre class="programlisting">#define darray_size(arr)    ((arr).size)
+<a name="darray-int"></a><h3>darray_int</h3>
+<pre class="programlisting">typedef darray(int)            darray_int;
 </pre>
 </div>
 <hr>
 <div class="refsect2">
-<a name="darray-uchar"></a><h3>darray_uchar</h3>
-<pre class="programlisting">typedef darray(unsigned char)  darray_uchar;
+<a name="darray-long"></a><h3>darray_long</h3>
+<pre class="programlisting">typedef darray(long)           darray_long;
 </pre>
 </div>
 <hr>
 <div class="refsect2">
-<a name="darray-uint"></a><h3>darray_uint</h3>
-<pre class="programlisting">typedef darray(unsigned int)   darray_uint;
+<a name="darray-ushort"></a><h3>darray_ushort</h3>
+<pre class="programlisting">typedef darray(unsigned short) darray_ushort;
 </pre>
 </div>
 <hr>
 <div class="refsect2">
-<a name="darray-ulong"></a><h3>darray_ulong</h3>
-<pre class="programlisting">typedef darray(unsigned long)  darray_ulong;
+<a name="darray-uint"></a><h3>darray_uint</h3>
+<pre class="programlisting">typedef darray(unsigned int)   darray_uint;
 </pre>
 </div>
 <hr>
 <div class="refsect2">
-<a name="darray-ushort"></a><h3>darray_ushort</h3>
-<pre class="programlisting">typedef darray(unsigned short) darray_ushort;
+<a name="darray-ulong"></a><h3>darray_ulong</h3>
+<pre class="programlisting">typedef darray(unsigned long)  darray_ulong;
 </pre>
 </div>
 </div>
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/Documentation/api/html/hkl-hkl-axis-private.html b/Documentation/api/html/hkl-hkl-axis-private.html
index b4973d8..e9a68a4 100644
--- a/Documentation/api/html/hkl-hkl-axis-private.html
+++ b/Documentation/api/html/hkl-hkl-axis-private.html
@@ -2,30 +2,26 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>hkl-axis-private</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<title>hkl Reference Manual: hkl-axis-private</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="hkl Reference Manual">
 <link rel="up" href="ch01.html" title="[Insert title here]">
 <link rel="prev" href="hkl-hkl.html" title="hkl">
 <link rel="next" href="hkl-hkl-detector-private.html" title="hkl-detector-private">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
-<tr valign="middle">
-<td><a accesskey="p" href="hkl-hkl.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">hkl Reference Manual</th>
-<td><a accesskey="n" href="hkl-hkl-detector-private.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
-</tr>
-<tr><td colspan="5" class="shortcuts">
-<a href="#hkl-hkl-axis-private.synopsis" class="shortcut">Top</a>
-                   | 
-                  <a href="#hkl-hkl-axis-private.description" class="shortcut">Description</a>
-</td></tr>
-</table>
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts">
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+                  <a href="#hkl-hkl-axis-private.description" class="shortcut">Description</a></span>
+</td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="p" href="hkl-hkl.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="hkl-hkl-detector-private.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
 <div class="refentry">
 <a name="hkl-hkl-axis-private"></a><div class="titlepage"></div>
 <div class="refnamediv"><table width="100%"><tr>
@@ -33,20 +29,52 @@
 <h2><span class="refentrytitle"><a name="hkl-hkl-axis-private.top_of_page"></a>hkl-axis-private</span></h2>
 <p>hkl-axis-private</p>
 </td>
-<td valign="top" align="right"></td>
+<td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
-<div class="refsynopsisdiv">
-<a name="hkl-hkl-axis-private.synopsis"></a><h2>Synopsis</h2>
-<pre class="synopsis">struct              <a class="link" href="hkl-hkl-axis-private.html#HklAxis" title="struct HklAxis">HklAxis</a>;
-<a class="link" href="hkl-hkl.html#HklParameter" title="HklParameter"><span class="returnvalue">HklParameter</span></a> *      <a class="link" href="hkl-hkl-axis-private.html#hkl-parameter-new-axis" title="hkl_parameter_new_axis ()">hkl_parameter_new_axis</a>              (<em class="parameter"><code><span class="type">char</span> const *name</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> const *axis_v</code></em>);
-</pre>
+<div class="refsect1">
+<a name="hkl-hkl-axis-private.functions"></a><h2>Functions</h2>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="functions_return">
+<col class="functions_name">
+</colgroup>
+<tbody><tr>
+<td class="function_type">
+<a class="link" href="hkl-hkl.html#HklParameter" title="HklParameter"><span class="returnvalue">HklParameter</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="hkl-hkl-axis-private.html#hkl-parameter-new-axis" title="hkl_parameter_new_axis ()">hkl_parameter_new_axis</a> <span class="c_punctuation">()</span>
+</td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="hkl-hkl-axis-private.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="name">
+<col class="description">
+</colgroup>
+<tbody><tr>
+<td class="datatype_keyword">struct</td>
+<td class="function_name"><a class="link" href="hkl-hkl-axis-private.html#HklAxis" title="struct HklAxis">HklAxis</a></td>
+</tr></tbody>
+</table></div>
 </div>
 <div class="refsect1">
 <a name="hkl-hkl-axis-private.description"></a><h2>Description</h2>
 </div>
 <div class="refsect1">
-<a name="hkl-hkl-axis-private.details"></a><h2>Details</h2>
+<a name="hkl-hkl-axis-private.functions_details"></a><h2>Functions</h2>
+<div class="refsect2">
+<a name="hkl-parameter-new-axis"></a><h3>hkl_parameter_new_axis ()</h3>
+<pre class="programlisting"><a class="link" href="hkl-hkl.html#HklParameter" title="HklParameter"><span class="returnvalue">HklParameter</span></a> *
+hkl_parameter_new_axis (<em class="parameter"><code><span class="type">char</span> const *name</code></em>,
+                        <em class="parameter"><code><a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> const *axis_v</code></em>);</pre>
+</div>
+</div>
+<div class="refsect1">
+<a name="hkl-hkl-axis-private.other_details"></a><h2>Types and Values</h2>
 <div class="refsect2">
 <a name="HklAxis"></a><h3>struct HklAxis</h3>
 <pre class="programlisting">struct HklAxis {
@@ -56,16 +84,10 @@
 };
 </pre>
 </div>
-<hr>
-<div class="refsect2">
-<a name="hkl-parameter-new-axis"></a><h3>hkl_parameter_new_axis ()</h3>
-<pre class="programlisting"><a class="link" href="hkl-hkl.html#HklParameter" title="HklParameter"><span class="returnvalue">HklParameter</span></a> *      hkl_parameter_new_axis              (<em class="parameter"><code><span class="type">char</span> const *name</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> const *axis_v</code></em>);</pre>
-</div>
 </div>
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/Documentation/api/html/hkl-hkl-detector-private.html b/Documentation/api/html/hkl-hkl-detector-private.html
index 104eaf2..0b4a94b 100644
--- a/Documentation/api/html/hkl-hkl-detector-private.html
+++ b/Documentation/api/html/hkl-hkl-detector-private.html
@@ -2,30 +2,26 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>hkl-detector-private</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<title>hkl Reference Manual: hkl-detector-private</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="hkl Reference Manual">
 <link rel="up" href="ch01.html" title="[Insert title here]">
 <link rel="prev" href="hkl-hkl-axis-private.html" title="hkl-axis-private">
 <link rel="next" href="hkl-hkl-factory-private.html" title="hkl-factory-private">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
-<tr valign="middle">
-<td><a accesskey="p" href="hkl-hkl-axis-private.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">hkl Reference Manual</th>
-<td><a accesskey="n" href="hkl-hkl-factory-private.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
-</tr>
-<tr><td colspan="5" class="shortcuts">
-<a href="#hkl-hkl-detector-private.synopsis" class="shortcut">Top</a>
-                   | 
-                  <a href="#hkl-hkl-detector-private.description" class="shortcut">Description</a>
-</td></tr>
-</table>
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts">
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+                  <a href="#hkl-hkl-detector-private.description" class="shortcut">Description</a></span>
+</td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="p" href="hkl-hkl-axis-private.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="hkl-hkl-factory-private.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
 <div class="refentry">
 <a name="hkl-hkl-detector-private"></a><div class="titlepage"></div>
 <div class="refnamediv"><table width="100%"><tr>
@@ -33,78 +29,128 @@
 <h2><span class="refentrytitle"><a name="hkl-hkl-detector-private.top_of_page"></a>hkl-detector-private</span></h2>
 <p>hkl-detector-private</p>
 </td>
-<td valign="top" align="right"></td>
+<td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
-<div class="refsynopsisdiv">
-<a name="hkl-hkl-detector-private.synopsis"></a><h2>Synopsis</h2>
-<pre class="synopsis">                    <a class="link" href="hkl-hkl.html#HklDetector" title="HklDetector">HklDetector</a>;
-<span class="returnvalue">void</span>                <a class="link" href="hkl-hkl-detector-private.html#hkl-detector-attach-to-holder" title="hkl_detector_attach_to_holder ()">hkl_detector_attach_to_holder</a>       (<em class="parameter"><code><a class="link" href="hkl-hkl.html#HklDetector" title="HklDetector"><span class="type">HklDetector</span></a> *self</code></em>);
-<span class="returnvalue">int</span>                 <a class="link" href="hkl-hkl-detector-private.html#hkl-detector-compute-kf" title="hkl_detector_compute_kf ()">hkl_detector_compute_kf</a>             (<em class="parameter"><code><a class="link" href="hkl-hkl.html#HklDetector" title="HklDetector"><span class="type">HklDetector</span></a> const *self</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="hkl-hkl.html#HklGeometry" title="HklGeometry"><span class="type">HklGeometry</span></a> *g</code></em>);
-<a class="link" href="hkl-hkl.html#HklDetector" title="HklDetector"><span class="returnvalue">HklDetector</span></a> *       <a class="link" href="hkl-hkl-detector-private.html#hkl-detector-new" title="hkl_detector_new ()">hkl_detector_new</a>                    (<em class="parameter"><code><span class="type">void</span></code></em>);
-</pre>
+<div class="refsect1">
+<a name="hkl-hkl-detector-private.functions"></a><h2>Functions</h2>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="functions_return">
+<col class="functions_name">
+</colgroup>
+<tbody>
+<tr>
+<td class="function_type">
+<a class="link" href="hkl-hkl.html#HklDetector" title="HklDetector"><span class="returnvalue">HklDetector</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="hkl-hkl-detector-private.html#hkl-detector-new" title="hkl_detector_new ()">hkl_detector_new</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="hkl-hkl-detector-private.html#hkl-detector-attach-to-holder" title="hkl_detector_attach_to_holder ()">hkl_detector_attach_to_holder</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">int</span>
+</td>
+<td class="function_name">
+<a class="link" href="hkl-hkl-detector-private.html#hkl-detector-compute-kf" title="hkl_detector_compute_kf ()">hkl_detector_compute_kf</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="hkl-hkl-detector-private.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="name">
+<col class="description">
+</colgroup>
+<tbody><tr>
+<td class="datatype_keyword"> </td>
+<td class="function_name"><a class="link" href="hkl-hkl.html#HklDetector" title="HklDetector">HklDetector</a></td>
+</tr></tbody>
+</table></div>
 </div>
 <div class="refsect1">
 <a name="hkl-hkl-detector-private.description"></a><h2>Description</h2>
 </div>
 <div class="refsect1">
-<a name="hkl-hkl-detector-private.details"></a><h2>Details</h2>
+<a name="hkl-hkl-detector-private.functions_details"></a><h2>Functions</h2>
 <div class="refsect2">
-<a name="HklDetector"></a><h3>HklDetector</h3>
-<pre class="programlisting">typedef struct {
-	size_t idx;
-	HklHolder const *holder;
-} HklDetector;
-</pre>
+<a name="hkl-detector-new"></a><h3>hkl_detector_new ()</h3>
+<pre class="programlisting"><a class="link" href="hkl-hkl.html#HklDetector" title="HklDetector"><span class="returnvalue">HklDetector</span></a> *
+hkl_detector_new (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
+<p>Create a new default <a class="link" href="hkl-hkl.html#HklDetector" title="HklDetector"><span class="type">HklDetector</span></a></p>
+<div class="refsect3">
+<a name="id-1.2.11.6.2.5"></a><h4>Returns</h4>
+<p></p>
+</div>
 </div>
 <hr>
 <div class="refsect2">
-<a name="hkl-detector-attach-to-holder"></a><h3>hkl_detector_attach_to_holder ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                hkl_detector_attach_to_holder       (<em class="parameter"><code><a class="link" href="hkl-hkl.html#HklDetector" title="HklDetector"><span class="type">HklDetector</span></a> *self</code></em>);</pre>
-<p>
-attach the <a class="link" href="hkl-hkl.html#HklDetector" title="HklDetector"><span class="type">HklDetector</span></a> to an <a class="link" href="hkl-hkl-geometry-private.html#HklHolder" title="struct HklHolder"><span class="type">HklHolder</span></a>
-</p>
+<a name="hkl-detector-attach-to-holder"></a><h3>hkl_detector_attach_to_holder ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+hkl_detector_attach_to_holder (<em class="parameter"><code><a class="link" href="hkl-hkl.html#HklDetector" title="HklDetector"><span class="type">HklDetector</span></a> *self</code></em>);</pre>
+<p>attach the <a class="link" href="hkl-hkl.html#HklDetector" title="HklDetector"><span class="type">HklDetector</span></a> to an <a class="link" href="hkl-hkl-geometry-private.html#HklHolder" title="struct HklHolder"><span class="type">HklHolder</span></a></p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="hkl-detector-compute-kf"></a><h3>hkl_detector_compute_kf ()</h3>
-<pre class="programlisting"><span class="returnvalue">int</span>                 hkl_detector_compute_kf             (<em class="parameter"><code><a class="link" href="hkl-hkl.html#HklDetector" title="HklDetector"><span class="type">HklDetector</span></a> const *self</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="hkl-hkl.html#HklGeometry" title="HklGeometry"><span class="type">HklGeometry</span></a> *g</code></em>);</pre>
-<p>
-Compute the kf vector of the <a class="link" href="hkl-hkl.html#HklDetector" title="HklDetector"><span class="type">HklDetector</span></a>
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="hkl-detector-compute-kf"></a><h3>hkl_detector_compute_kf ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+hkl_detector_compute_kf (<em class="parameter"><code><a class="link" href="hkl-hkl.html#HklDetector" title="HklDetector"><span class="type">HklDetector</span></a> const *self</code></em>,
+                         <em class="parameter"><code><a class="link" href="hkl-hkl.html#HklGeometry" title="HklGeometry"><span class="type">HklGeometry</span></a> *g</code></em>);</pre>
+<p>Compute the kf vector of the <a class="link" href="hkl-hkl.html#HklDetector" title="HklDetector"><span class="type">HklDetector</span></a></p>
+<div class="refsect3">
+<a name="id-1.2.11.6.4.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>g</code></em> :</span></p></td>
-<td>the diffractometer <a class="link" href="hkl-hkl.html#HklGeometry" title="HklGeometry"><span class="type">HklGeometry</span></a> use to compute kf. <span class="annotation">[<acronym title="Parameter for input. Default is transfer none."><span class="acronym">in</span></acronym>]</span>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>kf</code></em> :</span></p></td>
-<td>the <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> fill with the kf coordinates. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym> caller-allocates]</span>
-</td>
+<td class="parameter_name"><p>g</p></td>
+<td class="parameter_description"><p> the diffractometer <a class="link" href="hkl-hkl.html#HklGeometry" title="HklGeometry"><span class="type">HklGeometry</span></a> use to compute kf. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for input. Default is transfer none."><span class="acronym">in</span></acronym>]</span></td>
 </tr>
 <tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>HKL_SUCCESS if everythongs goes fine. HKL_FAIL otherwise.</td>
+<td class="parameter_name"><p>kf</p></td>
+<td class="parameter_description"><p> the <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> fill with the kf coordinates. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Out parameter, where caller must allocate storage."><span class="acronym">out caller-allocates</span></acronym>]</span></td>
 </tr>
 </tbody>
 </table></div>
 </div>
-<hr>
+<div class="refsect3">
+<a name="id-1.2.11.6.4.6"></a><h4>Returns</h4>
+<p> HKL_SUCCESS if everythongs goes fine. HKL_FAIL otherwise.</p>
+<p></p>
+</div>
+</div>
+</div>
+<div class="refsect1">
+<a name="hkl-hkl-detector-private.other_details"></a><h2>Types and Values</h2>
 <div class="refsect2">
-<a name="hkl-detector-new"></a><h3>hkl_detector_new ()</h3>
-<pre class="programlisting"><a class="link" href="hkl-hkl.html#HklDetector" title="HklDetector"><span class="returnvalue">HklDetector</span></a> *       hkl_detector_new                    (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
-<p>
-Create a new default <a class="link" href="hkl-hkl.html#HklDetector" title="HklDetector"><span class="type">HklDetector</span></a>
-</p>
+<a name="HklDetector"></a><h3>HklDetector</h3>
+<pre class="programlisting">typedef struct {
+	size_t idx;
+	HklHolder const *holder;
+} HklDetector;
+</pre>
 </div>
 </div>
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/Documentation/api/html/hkl-hkl-factory-private.html b/Documentation/api/html/hkl-hkl-factory-private.html
index a943671..32c908e 100644
--- a/Documentation/api/html/hkl-hkl-factory-private.html
+++ b/Documentation/api/html/hkl-hkl-factory-private.html
@@ -2,30 +2,26 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>hkl-factory-private</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<title>hkl Reference Manual: hkl-factory-private</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="hkl Reference Manual">
 <link rel="up" href="ch01.html" title="[Insert title here]">
 <link rel="prev" href="hkl-hkl-detector-private.html" title="hkl-detector-private">
 <link rel="next" href="hkl-hkl-geometry-private.html" title="hkl-geometry-private">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
-<tr valign="middle">
-<td><a accesskey="p" href="hkl-hkl-detector-private.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">hkl Reference Manual</th>
-<td><a accesskey="n" href="hkl-hkl-geometry-private.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
-</tr>
-<tr><td colspan="5" class="shortcuts">
-<a href="#hkl-hkl-factory-private.synopsis" class="shortcut">Top</a>
-                   | 
-                  <a href="#hkl-hkl-factory-private.description" class="shortcut">Description</a>
-</td></tr>
-</table>
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts">
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+                  <a href="#hkl-hkl-factory-private.description" class="shortcut">Description</a></span>
+</td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="p" href="hkl-hkl-detector-private.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="hkl-hkl-geometry-private.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
 <div class="refentry">
 <a name="hkl-hkl-factory-private"></a><div class="titlepage"></div>
 <div class="refnamediv"><table width="100%"><tr>
@@ -33,23 +29,78 @@
 <h2><span class="refentrytitle"><a name="hkl-hkl-factory-private.top_of_page"></a>hkl-factory-private</span></h2>
 <p>hkl-factory-private</p>
 </td>
-<td valign="top" align="right"></td>
+<td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
-<div class="refsynopsisdiv">
-<a name="hkl-hkl-factory-private.synopsis"></a><h2>Synopsis</h2>
-<pre class="synopsis">                    <a class="link" href="hkl-hkl.html#HklFactory" title="HklFactory">HklFactory</a>;
-<a class="link" href="hkl-hkl.html#HklEngineList" title="HklEngineList"><span class="returnvalue">HklEngineList</span></a> *     (<a class="link" href="hkl-hkl-factory-private.html#HklFactoryEngineListFunction" title="HklFactoryEngineListFunction ()">*HklFactoryEngineListFunction</a>)     (<em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklFactory" title="HklFactory"><span class="type">HklFactory</span></a> *factory</code></em>);
-<a class="link" href="hkl-hkl.html#HklGeometry" title="HklGeometry"><span class="returnvalue">HklGeometry</span></a> *       (<a class="link" href="hkl-hkl-factory-private.html#HklFactoryGeometryFunction" title="HklFactoryGeometryFunction ()">*HklFactoryGeometryFunction</a>)       (<em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklFactory" title="HklFactory"><span class="type">HklFactory</span></a> *factory</code></em>);
-#define             <a class="link" href="hkl-hkl-factory-private.html#REGISTER-DIFFRACTOMETER:CAPS" title="REGISTER_DIFFRACTOMETER()">REGISTER_DIFFRACTOMETER</a>             (name_,
-                                                         real_name_,
-                                                         description_)
-</pre>
+<div class="refsect1">
+<a name="hkl-hkl-factory-private.functions"></a><h2>Functions</h2>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="functions_return">
+<col class="functions_name">
+</colgroup>
+<tbody>
+<tr>
+<td class="function_type">
+<a class="link" href="hkl-hkl.html#HklGeometry" title="HklGeometry"><span class="returnvalue">HklGeometry</span></a> *
+</td>
+<td class="function_name">
+<span class="c_punctuation">(</span><a class="link" href="hkl-hkl-factory-private.html#HklFactoryGeometryFunction" title="HklFactoryGeometryFunction ()">*HklFactoryGeometryFunction</a><span class="c_punctuation">)</span> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="hkl-hkl.html#HklEngineList" title="HklEngineList"><span class="returnvalue">HklEngineList</span></a> *
+</td>
+<td class="function_name">
+<span class="c_punctuation">(</span><a class="link" href="hkl-hkl-factory-private.html#HklFactoryEngineListFunction" title="HklFactoryEngineListFunction ()">*HklFactoryEngineListFunction</a><span class="c_punctuation">)</span> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name">
+<a class="link" href="hkl-hkl-factory-private.html#REGISTER-DIFFRACTOMETER:CAPS" title="REGISTER_DIFFRACTOMETER()">REGISTER_DIFFRACTOMETER</a><span class="c_punctuation">()</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="hkl-hkl-factory-private.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="name">
+<col class="description">
+</colgroup>
+<tbody><tr>
+<td class="datatype_keyword"> </td>
+<td class="function_name"><a class="link" href="hkl-hkl.html#HklFactory" title="HklFactory">HklFactory</a></td>
+</tr></tbody>
+</table></div>
 </div>
 <div class="refsect1">
 <a name="hkl-hkl-factory-private.description"></a><h2>Description</h2>
 </div>
 <div class="refsect1">
-<a name="hkl-hkl-factory-private.details"></a><h2>Details</h2>
+<a name="hkl-hkl-factory-private.functions_details"></a><h2>Functions</h2>
+<div class="refsect2">
+<a name="HklFactoryGeometryFunction"></a><h3>HklFactoryGeometryFunction ()</h3>
+<pre class="programlisting"><a class="link" href="hkl-hkl.html#HklGeometry" title="HklGeometry"><span class="returnvalue">HklGeometry</span></a> *
+<span class="c_punctuation">(</span>*HklFactoryGeometryFunction<span class="c_punctuation">)</span> (<em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklFactory" title="HklFactory"><span class="type">HklFactory</span></a> *factory</code></em>);</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="HklFactoryEngineListFunction"></a><h3>HklFactoryEngineListFunction ()</h3>
+<pre class="programlisting"><a class="link" href="hkl-hkl.html#HklEngineList" title="HklEngineList"><span class="returnvalue">HklEngineList</span></a> *
+<span class="c_punctuation">(</span>*HklFactoryEngineListFunction<span class="c_punctuation">)</span> (<em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklFactory" title="HklFactory"><span class="type">HklFactory</span></a> *factory</code></em>);</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="REGISTER-DIFFRACTOMETER:CAPS"></a><h3>REGISTER_DIFFRACTOMETER()</h3>
+<pre class="programlisting">#define             REGISTER_DIFFRACTOMETER(name_, real_name_, description_)</pre>
+</div>
+</div>
+<div class="refsect1">
+<a name="hkl-hkl-factory-private.other_details"></a><h2>Types and Values</h2>
 <div class="refsect2">
 <a name="HklFactory"></a><h3>HklFactory</h3>
 <pre class="programlisting">typedef struct {
@@ -61,25 +112,10 @@
 } HklFactory;
 </pre>
 </div>
-<hr>
-<div class="refsect2">
-<a name="HklFactoryEngineListFunction"></a><h3>HklFactoryEngineListFunction ()</h3>
-<pre class="programlisting"><a class="link" href="hkl-hkl.html#HklEngineList" title="HklEngineList"><span class="returnvalue">HklEngineList</span></a> *     (*HklFactoryEngineListFunction)     (<em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklFactory" title="HklFactory"><span class="type">HklFactory</span></a> *factory</code></em>);</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="HklFactoryGeometryFunction"></a><h3>HklFactoryGeometryFunction ()</h3>
-<pre class="programlisting"><a class="link" href="hkl-hkl.html#HklGeometry" title="HklGeometry"><span class="returnvalue">HklGeometry</span></a> *       (*HklFactoryGeometryFunction)       (<em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklFactory" title="HklFactory"><span class="type">HklFactory</span></a> *factory</code></em>);</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="REGISTER-DIFFRACTOMETER:CAPS"></a><h3>REGISTER_DIFFRACTOMETER()</h3>
-<pre class="programlisting">#define             REGISTER_DIFFRACTOMETER(name_, real_name_, description_)</pre>
-</div>
 </div>
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/Documentation/api/html/hkl-hkl-geometry-private.html b/Documentation/api/html/hkl-hkl-geometry-private.html
index 06bd4ef..4313b1d 100644
--- a/Documentation/api/html/hkl-hkl-geometry-private.html
+++ b/Documentation/api/html/hkl-hkl-geometry-private.html
@@ -2,30 +2,26 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>hkl-geometry-private</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<title>hkl Reference Manual: hkl-geometry-private</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="hkl Reference Manual">
 <link rel="up" href="ch01.html" title="[Insert title here]">
 <link rel="prev" href="hkl-hkl-factory-private.html" title="hkl-factory-private">
 <link rel="next" href="hkl-hkl-interval-private.html" title="hkl-interval-private">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
-<tr valign="middle">
-<td><a accesskey="p" href="hkl-hkl-factory-private.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">hkl Reference Manual</th>
-<td><a accesskey="n" href="hkl-hkl-interval-private.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
-</tr>
-<tr><td colspan="5" class="shortcuts">
-<a href="#hkl-hkl-geometry-private.synopsis" class="shortcut">Top</a>
-                   | 
-                  <a href="#hkl-hkl-geometry-private.description" class="shortcut">Description</a>
-</td></tr>
-</table>
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts">
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+                  <a href="#hkl-hkl-geometry-private.description" class="shortcut">Description</a></span>
+</td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="p" href="hkl-hkl-factory-private.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="hkl-hkl-interval-private.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
 <div class="refentry">
 <a name="hkl-hkl-geometry-private"></a><div class="titlepage"></div>
 <div class="refnamediv"><table width="100%"><tr>
@@ -33,426 +29,713 @@
 <h2><span class="refentrytitle"><a name="hkl-hkl-geometry-private.top_of_page"></a>hkl-geometry-private</span></h2>
 <p>hkl-geometry-private</p>
 </td>
-<td valign="top" align="right"></td>
+<td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
-<div class="refsynopsisdiv">
-<a name="hkl-hkl-geometry-private.synopsis"></a><h2>Synopsis</h2>
-<pre class="synopsis">#define             <a class="link" href="hkl-hkl-geometry-private.html#HKL-GEOMETRY-ERROR:CAPS" title="HKL_GEOMETRY_ERROR">HKL_GEOMETRY_ERROR</a>
-                    <a class="link" href="hkl-hkl.html#HklGeometry" title="HklGeometry">HklGeometry</a>;
-enum                <a class="link" href="hkl-hkl-geometry-private.html#HklGeometryError" title="enum HklGeometryError">HklGeometryError</a>;
-                    <a class="link" href="hkl-hkl.html#HklGeometryList" title="HklGeometryList">HklGeometryList</a>;
-                    <a class="link" href="hkl-hkl.html#HklGeometryListItem" title="HklGeometryListItem">HklGeometryListItem</a>;
-<span class="returnvalue">void</span>                (<a class="link" href="hkl-hkl-geometry-private.html#HklGeometryListMultiplyFunction" title="HklGeometryListMultiplyFunction ()">*HklGeometryListMultiplyFunction</a>)  (<em class="parameter"><code><a class="link" href="hkl-hkl.html#HklGeometryList" title="HklGeometryList"><span class="type">HklGeometryList</span></a> *self</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="hkl-hkl.html#HklGeometryListItem" title="HklGeometryListItem"><span class="type">HklGeometryListItem</span></a> *item</code></em>);
-struct              <a class="link" href="hkl-hkl-geometry-private.html#HklHolder" title="struct HklHolder">HklHolder</a>;
-typedef             <a class="link" href="hkl-hkl-geometry-private.html#darray-holder" title="darray_holder">darray_holder</a>;
-<span class="returnvalue">return</span>              <a class="link" href="hkl-hkl-geometry-private.html#g-quark-from-static-string" title="g_quark_from_static_string ()">g_quark_from_static_string</a>          ();
-<a class="link" href="hkl-hkl-geometry-private.html#HklHolder" title="struct HklHolder"><span class="returnvalue">HklHolder</span></a> *         <a class="link" href="hkl-hkl-geometry-private.html#hkl-geometry-add-holder" title="hkl_geometry_add_holder ()">hkl_geometry_add_holder</a>             (<em class="parameter"><code><a class="link" href="hkl-hkl.html#HklGeometry" title="HklGeometry"><span class="type">HklGeometry</span></a> *self</code></em>);
-<span class="returnvalue">int</span>                 <a class="link" href="hkl-hkl-geometry-private.html#hkl-geometry-closest-from-geometry-with-range" title="hkl_geometry_closest_from_geometry_with_range ()">hkl_geometry_closest_from_geometry_with_range</a>
-                                                        (<em class="parameter"><code><a class="link" href="hkl-hkl.html#HklGeometry" title="HklGeometry"><span class="type">HklGeometry</span></a> *self</code></em>,
-                                                         <em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklGeometry" title="HklGeometry"><span class="type">HklGeometry</span></a> *ref</code></em>);
-<span class="returnvalue">double</span>              <a class="link" href="hkl-hkl-geometry-private.html#hkl-geometry-distance" title="hkl_geometry_distance ()">hkl_geometry_distance</a>               (<em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklGeometry" title="HklGeometry"><span class="type">HklGeometry</span></a> *self</code></em>,
-                                                         <em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklGeometry" title="HklGeometry"><span class="type">HklGeometry</span></a> *ref</code></em>);
-<span class="returnvalue">double</span>              <a class="link" href="hkl-hkl-geometry-private.html#hkl-geometry-distance-orthodromic" title="hkl_geometry_distance_orthodromic ()">hkl_geometry_distance_orthodromic</a>   (<em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklGeometry" title="HklGeometry"><span class="type">HklGeometry</span></a> *self</code></em>,
-                                                         <em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklGeometry" title="HklGeometry"><span class="type">HklGeometry</span></a> *ref</code></em>);
-<a class="link" href="hkl-hkl.html#HklParameter" title="HklParameter"><span class="returnvalue">HklParameter</span></a> *      <a class="link" href="hkl-hkl-geometry-private.html#hkl-geometry-get-axis-by-name" title="hkl_geometry_get_axis_by_name ()">hkl_geometry_get_axis_by_name</a>       (<em class="parameter"><code><a class="link" href="hkl-hkl.html#HklGeometry" title="HklGeometry"><span class="type">HklGeometry</span></a> *self</code></em>,
-                                                         <em class="parameter"><code>const <span class="type">char</span> *name</code></em>);
-<span class="returnvalue">int</span>                 <a class="link" href="hkl-hkl-geometry-private.html#hkl-geometry-get-axis-idx-by-name" title="hkl_geometry_get_axis_idx_by_name ()">hkl_geometry_get_axis_idx_by_name</a>   (<em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklGeometry" title="HklGeometry"><span class="type">HklGeometry</span></a> *self</code></em>,
-                                                         <em class="parameter"><code>const <span class="type">char</span> *name</code></em>);
-<span class="returnvalue">int</span>                 <a class="link" href="hkl-hkl-geometry-private.html#hkl-geometry-init-geometry" title="hkl_geometry_init_geometry ()">hkl_geometry_init_geometry</a>          (<em class="parameter"><code><a class="link" href="hkl-hkl.html#HklGeometry" title="HklGeometry"><span class="type">HklGeometry</span></a> *self</code></em>,
-                                                         <em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklGeometry" title="HklGeometry"><span class="type">HklGeometry</span></a> *src</code></em>);
-<span class="returnvalue">int</span>                 <a class="link" href="hkl-hkl-geometry-private.html#hkl-geometry-is-valid" title="hkl_geometry_is_valid ()">hkl_geometry_is_valid</a>               (<em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklGeometry" title="HklGeometry"><span class="type">HklGeometry</span></a> *self</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="hkl-hkl-geometry-private.html#hkl-geometry-list-add" title="hkl_geometry_list_add ()">hkl_geometry_list_add</a>               (<em class="parameter"><code><a class="link" href="hkl-hkl.html#HklGeometryList" title="HklGeometryList"><span class="type">HklGeometryList</span></a> *self</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="hkl-hkl.html#HklGeometry" title="HklGeometry"><span class="type">HklGeometry</span></a> *geometry</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="hkl-hkl-geometry-private.html#hkl-geometry-list-fprintf" title="hkl_geometry_list_fprintf ()">hkl_geometry_list_fprintf</a>           (<em class="parameter"><code><span class="type">FILE</span> *f</code></em>,
-                                                         <em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklGeometryList" title="HklGeometryList"><span class="type">HklGeometryList</span></a> *self</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="hkl-hkl-geometry-private.html#hkl-geometry-list-item-free" title="hkl_geometry_list_item_free ()">hkl_geometry_list_item_free</a>         (<em class="parameter"><code><a class="link" href="hkl-hkl.html#HklGeometryListItem" title="HklGeometryListItem"><span class="type">HklGeometryListItem</span></a> *self</code></em>);
-<a class="link" href="hkl-hkl.html#HklGeometryListItem" title="HklGeometryListItem"><span class="returnvalue">HklGeometryListItem</span></a> * <a class="link" href="hkl-hkl-geometry-private.html#hkl-geometry-list-item-new" title="hkl_geometry_list_item_new ()">hkl_geometry_list_item_new</a>        (<em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklGeometry" title="HklGeometry"><span class="type">HklGeometry</span></a> *geometry</code></em>);
-<a class="link" href="hkl-hkl.html#HklGeometryListItem" title="HklGeometryListItem"><span class="returnvalue">HklGeometryListItem</span></a> * <a class="link" href="hkl-hkl-geometry-private.html#hkl-geometry-list-item-new-copy" title="hkl_geometry_list_item_new_copy ()">hkl_geometry_list_item_new_copy</a>   (<em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklGeometryListItem" title="HklGeometryListItem"><span class="type">HklGeometryListItem</span></a> *self</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="hkl-hkl-geometry-private.html#hkl-geometry-list-multiply" title="hkl_geometry_list_multiply ()">hkl_geometry_list_multiply</a>          (<em class="parameter"><code><a class="link" href="hkl-hkl.html#HklGeometryList" title="HklGeometryList"><span class="type">HklGeometryList</span></a> *self</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="hkl-hkl-geometry-private.html#hkl-geometry-list-multiply-from-range" title="hkl_geometry_list_multiply_from_range ()">hkl_geometry_list_multiply_from_range</a>
-                                                        (<em class="parameter"><code><a class="link" href="hkl-hkl.html#HklGeometryList" title="HklGeometryList"><span class="type">HklGeometryList</span></a> *self</code></em>);
-<a class="link" href="hkl-hkl.html#HklGeometryList" title="HklGeometryList"><span class="returnvalue">HklGeometryList</span></a> *   <a class="link" href="hkl-hkl-geometry-private.html#hkl-geometry-list-new" title="hkl_geometry_list_new ()">hkl_geometry_list_new</a>               (<em class="parameter"><code><span class="type">void</span></code></em>);
-<a class="link" href="hkl-hkl.html#HklGeometryList" title="HklGeometryList"><span class="returnvalue">HklGeometryList</span></a> *   <a class="link" href="hkl-hkl-geometry-private.html#hkl-geometry-list-new-copy" title="hkl_geometry_list_new_copy ()">hkl_geometry_list_new_copy</a>          (<em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklGeometryList" title="HklGeometryList"><span class="type">HklGeometryList</span></a> *self</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="hkl-hkl-geometry-private.html#hkl-geometry-list-remove-invalid" title="hkl_geometry_list_remove_invalid ()">hkl_geometry_list_remove_invalid</a>    (<em class="parameter"><code><a class="link" href="hkl-hkl.html#HklGeometryList" title="HklGeometryList"><span class="type">HklGeometryList</span></a> *self</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="hkl-hkl-geometry-private.html#hkl-geometry-list-reset" title="hkl_geometry_list_reset ()">hkl_geometry_list_reset</a>             (<em class="parameter"><code><a class="link" href="hkl-hkl.html#HklGeometryList" title="HklGeometryList"><span class="type">HklGeometryList</span></a> *self</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="hkl-hkl-geometry-private.html#hkl-geometry-list-sort" title="hkl_geometry_list_sort ()">hkl_geometry_list_sort</a>              (<em class="parameter"><code><a class="link" href="hkl-hkl.html#HklGeometryList" title="HklGeometryList"><span class="type">HklGeometryList</span></a> *self</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="hkl-hkl.html#HklGeometry" title="HklGeometry"><span class="type">HklGeometry</span></a> *ref</code></em>);
-<a class="link" href="hkl-hkl.html#HklGeometry" title="HklGeometry"><span class="returnvalue">HklGeometry</span></a> *       <a class="link" href="hkl-hkl-geometry-private.html#hkl-geometry-new" title="hkl_geometry_new ()">hkl_geometry_new</a>                    (<em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklFactory" title="HklFactory"><span class="type">HklFactory</span></a> *factory</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="hkl-hkl-geometry-private.html#hkl-geometry-update" title="hkl_geometry_update ()">hkl_geometry_update</a>                 (<em class="parameter"><code><a class="link" href="hkl-hkl.html#HklGeometry" title="HklGeometry"><span class="type">HklGeometry</span></a> *self</code></em>);
-<a class="link" href="hkl-hkl.html#HklParameter" title="HklParameter"><span class="returnvalue">HklParameter</span></a> *      <a class="link" href="hkl-hkl-geometry-private.html#hkl-holder-add-rotation-axis" title="hkl_holder_add_rotation_axis ()">hkl_holder_add_rotation_axis</a>        (<em class="parameter"><code><a class="link" href="hkl-hkl-geometry-private.html#HklHolder" title="struct HklHolder"><span class="type">HklHolder</span></a> *self</code></em>,
-                                                         <em class="parameter"><code><span class="type">char</span> const *name</code></em>,
-                                                         <em class="parameter"><code><span class="type">double</span> x</code></em>,
-                                                         <em class="parameter"><code><span class="type">double</span> y</code></em>,
-                                                         <em class="parameter"><code><span class="type">double</span> z</code></em>);
-</pre>
+<div class="refsect1">
+<a name="hkl-hkl-geometry-private.functions"></a><h2>Functions</h2>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="functions_return">
+<col class="functions_name">
+</colgroup>
+<tbody>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<span class="c_punctuation">(</span><a class="link" href="hkl-hkl-geometry-private.html#HklGeometryListMultiplyFunction" title="HklGeometryListMultiplyFunction ()">*HklGeometryListMultiplyFunction</a><span class="c_punctuation">)</span> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">return</span>
+</td>
+<td class="function_name">
+<a class="link" href="hkl-hkl-geometry-private.html#g-quark-from-static-string" title="g_quark_from_static_string ()">g_quark_from_static_string</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="hkl-hkl.html#HklParameter" title="HklParameter"><span class="returnvalue">HklParameter</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="hkl-hkl-geometry-private.html#hkl-holder-add-rotation-axis" title="hkl_holder_add_rotation_axis ()">hkl_holder_add_rotation_axis</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="hkl-hkl.html#HklGeometry" title="HklGeometry"><span class="returnvalue">HklGeometry</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="hkl-hkl-geometry-private.html#hkl-geometry-new" title="hkl_geometry_new ()">hkl_geometry_new</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">int</span>
+</td>
+<td class="function_name">
+<a class="link" href="hkl-hkl-geometry-private.html#hkl-geometry-init-geometry" title="hkl_geometry_init_geometry ()">hkl_geometry_init_geometry</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="hkl-hkl-geometry-private.html#HklHolder" title="struct HklHolder"><span class="returnvalue">HklHolder</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="hkl-hkl-geometry-private.html#hkl-geometry-add-holder" title="hkl_geometry_add_holder ()">hkl_geometry_add_holder</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="hkl-hkl-geometry-private.html#hkl-geometry-update" title="hkl_geometry_update ()">hkl_geometry_update</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">int</span>
+</td>
+<td class="function_name">
+<a class="link" href="hkl-hkl-geometry-private.html#hkl-geometry-get-axis-idx-by-name" title="hkl_geometry_get_axis_idx_by_name ()">hkl_geometry_get_axis_idx_by_name</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="hkl-hkl.html#HklParameter" title="HklParameter"><span class="returnvalue">HklParameter</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="hkl-hkl-geometry-private.html#hkl-geometry-get-axis-by-name" title="hkl_geometry_get_axis_by_name ()">hkl_geometry_get_axis_by_name</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">double</span>
+</td>
+<td class="function_name">
+<a class="link" href="hkl-hkl-geometry-private.html#hkl-geometry-distance" title="hkl_geometry_distance ()">hkl_geometry_distance</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">double</span>
+</td>
+<td class="function_name">
+<a class="link" href="hkl-hkl-geometry-private.html#hkl-geometry-distance-orthodromic" title="hkl_geometry_distance_orthodromic ()">hkl_geometry_distance_orthodromic</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">int</span>
+</td>
+<td class="function_name">
+<a class="link" href="hkl-hkl-geometry-private.html#hkl-geometry-closest-from-geometry-with-range" title="hkl_geometry_closest_from_geometry_with_range ()">hkl_geometry_closest_from_geometry_with_range</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">int</span>
+</td>
+<td class="function_name">
+<a class="link" href="hkl-hkl-geometry-private.html#hkl-geometry-is-valid" title="hkl_geometry_is_valid ()">hkl_geometry_is_valid</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="hkl-hkl.html#HklGeometryList" title="HklGeometryList"><span class="returnvalue">HklGeometryList</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="hkl-hkl-geometry-private.html#hkl-geometry-list-new" title="hkl_geometry_list_new ()">hkl_geometry_list_new</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="hkl-hkl.html#HklGeometryList" title="HklGeometryList"><span class="returnvalue">HklGeometryList</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="hkl-hkl-geometry-private.html#hkl-geometry-list-new-copy" title="hkl_geometry_list_new_copy ()">hkl_geometry_list_new_copy</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="hkl-hkl-geometry-private.html#hkl-geometry-list-add" title="hkl_geometry_list_add ()">hkl_geometry_list_add</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="hkl-hkl-geometry-private.html#hkl-geometry-list-reset" title="hkl_geometry_list_reset ()">hkl_geometry_list_reset</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="hkl-hkl-geometry-private.html#hkl-geometry-list-sort" title="hkl_geometry_list_sort ()">hkl_geometry_list_sort</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="hkl-hkl-geometry-private.html#hkl-geometry-list-fprintf" title="hkl_geometry_list_fprintf ()">hkl_geometry_list_fprintf</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="hkl-hkl-geometry-private.html#hkl-geometry-list-multiply" title="hkl_geometry_list_multiply ()">hkl_geometry_list_multiply</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="hkl-hkl-geometry-private.html#hkl-geometry-list-multiply-from-range" title="hkl_geometry_list_multiply_from_range ()">hkl_geometry_list_multiply_from_range</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="hkl-hkl-geometry-private.html#hkl-geometry-list-remove-invalid" title="hkl_geometry_list_remove_invalid ()">hkl_geometry_list_remove_invalid</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="hkl-hkl.html#HklGeometryListItem" title="HklGeometryListItem"><span class="returnvalue">HklGeometryListItem</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="hkl-hkl-geometry-private.html#hkl-geometry-list-item-new" title="hkl_geometry_list_item_new ()">hkl_geometry_list_item_new</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="hkl-hkl.html#HklGeometryListItem" title="HklGeometryListItem"><span class="returnvalue">HklGeometryListItem</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="hkl-hkl-geometry-private.html#hkl-geometry-list-item-new-copy" title="hkl_geometry_list_item_new_copy ()">hkl_geometry_list_item_new_copy</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="hkl-hkl-geometry-private.html#hkl-geometry-list-item-free" title="hkl_geometry_list_item_free ()">hkl_geometry_list_item_free</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="hkl-hkl-geometry-private.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="name">
+<col class="description">
+</colgroup>
+<tbody>
+<tr>
+<td class="typedef_keyword">typedef</td>
+<td class="function_name"><a class="link" href="hkl-hkl-geometry-private.html#darray-holder" title="darray_holder">darray_holder</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword">struct</td>
+<td class="function_name"><a class="link" href="hkl-hkl-geometry-private.html#HklHolderConfig" title="struct HklHolderConfig">HklHolderConfig</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword">struct</td>
+<td class="function_name"><a class="link" href="hkl-hkl-geometry-private.html#HklHolder" title="struct HklHolder">HklHolder</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword"> </td>
+<td class="function_name"><a class="link" href="hkl-hkl.html#HklGeometry" title="HklGeometry">HklGeometry</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="hkl-hkl-geometry-private.html#HKL-GEOMETRY-ERROR:CAPS" title="HKL_GEOMETRY_ERROR">HKL_GEOMETRY_ERROR</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword">enum</td>
+<td class="function_name"><a class="link" href="hkl-hkl-geometry-private.html#HklGeometryError" title="enum HklGeometryError">HklGeometryError</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword"> </td>
+<td class="function_name"><a class="link" href="hkl-hkl.html#HklGeometryList" title="HklGeometryList">HklGeometryList</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword"> </td>
+<td class="function_name"><a class="link" href="hkl-hkl.html#HklGeometryListItem" title="HklGeometryListItem">HklGeometryListItem</a></td>
+</tr>
+</tbody>
+</table></div>
 </div>
 <div class="refsect1">
 <a name="hkl-hkl-geometry-private.description"></a><h2>Description</h2>
 </div>
 <div class="refsect1">
-<a name="hkl-hkl-geometry-private.details"></a><h2>Details</h2>
+<a name="hkl-hkl-geometry-private.functions_details"></a><h2>Functions</h2>
 <div class="refsect2">
-<a name="HKL-GEOMETRY-ERROR:CAPS"></a><h3>HKL_GEOMETRY_ERROR</h3>
-<pre class="programlisting">#define HKL_GEOMETRY_ERROR hkl_geometry_error_quark ()
-</pre>
+<a name="HklGeometryListMultiplyFunction"></a><h3>HklGeometryListMultiplyFunction ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+<span class="c_punctuation">(</span>*HklGeometryListMultiplyFunction<span class="c_punctuation">)</span> (<em class="parameter"><code><a class="link" href="hkl-hkl.html#HklGeometryList" title="HklGeometryList"><span class="type">HklGeometryList</span></a> *self</code></em>,
+                                    <em class="parameter"><code><a class="link" href="hkl-hkl.html#HklGeometryListItem" title="HklGeometryListItem"><span class="type">HklGeometryListItem</span></a> *item</code></em>);</pre>
 </div>
 <hr>
 <div class="refsect2">
-<a name="HklGeometry"></a><h3>HklGeometry</h3>
-<pre class="programlisting">typedef struct {
-	const HklFactory *factory;
-	HklSource source;
-	darray_parameter axes;
-	darray_holder holders;
-} HklGeometry;
-</pre>
+<a name="g-quark-from-static-string"></a><h3>g_quark_from_static_string ()</h3>
+<pre class="programlisting"><span class="returnvalue">return</span>
+g_quark_from_static_string ();</pre>
 </div>
 <hr>
 <div class="refsect2">
-<a name="HklGeometryError"></a><h3>enum HklGeometryError</h3>
-<pre class="programlisting">typedef enum {
-	HKL_GEOMETRY_ERROR_AXIS_GET, /* can not get the axis */
-	HKL_GEOMETRY_ERROR_AXIS_SET, /* can not set the axis */
-} HklGeometryError;
-</pre>
+<a name="hkl-holder-add-rotation-axis"></a><h3>hkl_holder_add_rotation_axis ()</h3>
+<pre class="programlisting"><a class="link" href="hkl-hkl.html#HklParameter" title="HklParameter"><span class="returnvalue">HklParameter</span></a> *
+hkl_holder_add_rotation_axis (<em class="parameter"><code><a class="link" href="hkl-hkl-geometry-private.html#HklHolder" title="struct HklHolder"><span class="type">HklHolder</span></a> *self</code></em>,
+                              <em class="parameter"><code><span class="type">char</span> const *name</code></em>,
+                              <em class="parameter"><code><span class="type">double</span> x</code></em>,
+                              <em class="parameter"><code><span class="type">double</span> y</code></em>,
+                              <em class="parameter"><code><span class="type">double</span> z</code></em>);</pre>
 </div>
 <hr>
 <div class="refsect2">
-<a name="HklGeometryList"></a><h3>HklGeometryList</h3>
-<pre class="programlisting">typedef struct {
-	HklGeometryListMultiplyFunction multiply;
-	struct list_head items;
-	size_t n_items;
-} HklGeometryList;
-</pre>
+<a name="hkl-geometry-new"></a><h3>hkl_geometry_new ()</h3>
+<pre class="programlisting"><a class="link" href="hkl-hkl.html#HklGeometry" title="HklGeometry"><span class="returnvalue">HklGeometry</span></a> *
+hkl_geometry_new (<em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklFactory" title="HklFactory"><span class="type">HklFactory</span></a> *factory</code></em>);</pre>
+<p>constructor</p>
+<div class="refsect3">
+<a name="id-1.2.13.6.5.5"></a><h4>Returns</h4>
+<p></p>
 </div>
-<hr>
-<div class="refsect2">
-<a name="HklGeometryListItem"></a><h3>HklGeometryListItem</h3>
-<pre class="programlisting">typedef struct {
-	struct list_node list;
-	HklGeometry *geometry;
-} HklGeometryListItem;
-</pre>
 </div>
 <hr>
 <div class="refsect2">
-<a name="HklGeometryListMultiplyFunction"></a><h3>HklGeometryListMultiplyFunction ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                (*HklGeometryListMultiplyFunction)  (<em class="parameter"><code><a class="link" href="hkl-hkl.html#HklGeometryList" title="HklGeometryList"><span class="type">HklGeometryList</span></a> *self</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="hkl-hkl.html#HklGeometryListItem" title="HklGeometryListItem"><span class="type">HklGeometryListItem</span></a> *item</code></em>);</pre>
+<a name="hkl-geometry-init-geometry"></a><h3>hkl_geometry_init_geometry ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+hkl_geometry_init_geometry (<em class="parameter"><code><a class="link" href="hkl-hkl.html#HklGeometry" title="HklGeometry"><span class="type">HklGeometry</span></a> *self</code></em>,
+                            <em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklGeometry" title="HklGeometry"><span class="type">HklGeometry</span></a> *src</code></em>);</pre>
+<p>initilize an HklGeometry</p>
+<div class="refsect3">
+<a name="id-1.2.13.6.6.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>self</p></td>
+<td class="parameter_description"><p>the this ptr</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>src</p></td>
+<td class="parameter_description"><p>the <a class="link" href="hkl-hkl.html#HklGeometry" title="HklGeometry"><span class="type">HklGeometry</span></a> to set from</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="id-1.2.13.6.6.6"></a><h4>Returns</h4>
+<p> TRUE on success, FALSE if an error occurred</p>
+<p></p>
 </div>
-<hr>
-<div class="refsect2">
-<a name="HklHolder"></a><h3>struct HklHolder</h3>
-<pre class="programlisting">struct HklHolder {
-	struct HklHolderConfig *config;
-	HklGeometry *geometry;
-	HklQuaternion q;
-};
-</pre>
 </div>
 <hr>
 <div class="refsect2">
-<a name="darray-holder"></a><h3>darray_holder</h3>
-<pre class="programlisting">typedef darray(HklHolder *) darray_holder;
-</pre>
+<a name="hkl-geometry-add-holder"></a><h3>hkl_geometry_add_holder ()</h3>
+<pre class="programlisting"><a class="link" href="hkl-hkl-geometry-private.html#HklHolder" title="struct HklHolder"><span class="returnvalue">HklHolder</span></a> *
+hkl_geometry_add_holder (<em class="parameter"><code><a class="link" href="hkl-hkl.html#HklGeometry" title="HklGeometry"><span class="type">HklGeometry</span></a> *self</code></em>);</pre>
+<p>add an Holder to the <a class="link" href="hkl-hkl.html#HklGeometry" title="HklGeometry"><span class="type">HklGeometry</span></a></p>
+<div class="refsect3">
+<a name="id-1.2.13.6.7.5"></a><h4>Returns</h4>
+<p></p>
+</div>
 </div>
 <hr>
 <div class="refsect2">
-<a name="g-quark-from-static-string"></a><h3>g_quark_from_static_string ()</h3>
-<pre class="programlisting"><span class="returnvalue">return</span>              g_quark_from_static_string          ();</pre>
+<a name="hkl-geometry-update"></a><h3>hkl_geometry_update ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+hkl_geometry_update (<em class="parameter"><code><a class="link" href="hkl-hkl.html#HklGeometry" title="HklGeometry"><span class="type">HklGeometry</span></a> *self</code></em>);</pre>
+<p>update the geometry internal once an Axis values changed</p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="hkl-geometry-add-holder"></a><h3>hkl_geometry_add_holder ()</h3>
-<pre class="programlisting"><a class="link" href="hkl-hkl-geometry-private.html#HklHolder" title="struct HklHolder"><span class="returnvalue">HklHolder</span></a> *         hkl_geometry_add_holder             (<em class="parameter"><code><a class="link" href="hkl-hkl.html#HklGeometry" title="HklGeometry"><span class="type">HklGeometry</span></a> *self</code></em>);</pre>
-<p>
-add an Holder to the <a class="link" href="hkl-hkl.html#HklGeometry" title="HklGeometry"><span class="type">HklGeometry</span></a>
-</p>
+<a name="hkl-geometry-get-axis-idx-by-name"></a><h3>hkl_geometry_get_axis_idx_by_name ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+hkl_geometry_get_axis_idx_by_name (<em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklGeometry" title="HklGeometry"><span class="type">HklGeometry</span></a> *self</code></em>,
+                                   <em class="parameter"><code>const <span class="type">char</span> *name</code></em>);</pre>
+<p>get the index of the axes named <em class="parameter"><code>name</code></em>
+ in the geometry</p>
+<div class="refsect3">
+<a name="id-1.2.13.6.9.5"></a><h4>Returns</h4>
+<p> -1 if the axis was not found</p>
+<p></p>
+</div>
 </div>
 <hr>
 <div class="refsect2">
-<a name="hkl-geometry-closest-from-geometry-with-range"></a><h3>hkl_geometry_closest_from_geometry_with_range ()</h3>
-<pre class="programlisting"><span class="returnvalue">int</span>                 hkl_geometry_closest_from_geometry_with_range
-                                                        (<em class="parameter"><code><a class="link" href="hkl-hkl.html#HklGeometry" title="HklGeometry"><span class="type">HklGeometry</span></a> *self</code></em>,
-                                                         <em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklGeometry" title="HklGeometry"><span class="type">HklGeometry</span></a> *ref</code></em>);</pre>
-<p>
-get the closest axes values in the HklInterval compatible with the
-current axes values
-</p>
+<a name="hkl-geometry-get-axis-by-name"></a><h3>hkl_geometry_get_axis_by_name ()</h3>
+<pre class="programlisting"><a class="link" href="hkl-hkl.html#HklParameter" title="HklParameter"><span class="returnvalue">HklParameter</span></a> *
+hkl_geometry_get_axis_by_name (<em class="parameter"><code><a class="link" href="hkl-hkl.html#HklGeometry" title="HklGeometry"><span class="type">HklGeometry</span></a> *self</code></em>,
+                               <em class="parameter"><code>const <span class="type">char</span> *name</code></em>);</pre>
+<p>get an <a class="link" href="hkl-hkl-axis-private.html#HklAxis" title="struct HklAxis"><span class="type">HklAxis</span></a> using its name</p>
+<div class="refsect3">
+<a name="id-1.2.13.6.10.5"></a><h4>Returns</h4>
+<p>. </p>
+<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
+</div>
 </div>
 <hr>
 <div class="refsect2">
-<a name="hkl-geometry-distance"></a><h3>hkl_geometry_distance ()</h3>
-<pre class="programlisting"><span class="returnvalue">double</span>              hkl_geometry_distance               (<em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklGeometry" title="HklGeometry"><span class="type">HklGeometry</span></a> *self</code></em>,
-                                                         <em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklGeometry" title="HklGeometry"><span class="type">HklGeometry</span></a> *ref</code></em>);</pre>
-<p>
-compute the distance between two <span class="type">HklGeometries</span>
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="hkl-geometry-distance"></a><h3>hkl_geometry_distance ()</h3>
+<pre class="programlisting"><span class="returnvalue">double</span>
+hkl_geometry_distance (<em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklGeometry" title="HklGeometry"><span class="type">HklGeometry</span></a> *self</code></em>,
+                       <em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklGeometry" title="HklGeometry"><span class="type">HklGeometry</span></a> *ref</code></em>);</pre>
+<p>compute the distance between two <span class="type">HklGeometries</span></p>
+<div class="refsect3">
+<a name="id-1.2.13.6.11.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
-<td>the this ptr</td>
+<td class="parameter_name"><p>self</p></td>
+<td class="parameter_description"><p>the this ptr</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>ref</code></em> :</span></p></td>
-<td>the <a class="link" href="hkl-hkl.html#HklGeometry" title="HklGeometry"><span class="type">HklGeometry</span></a> to compare with</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>the distance between the two geometries</td>
+<td class="parameter_name"><p>ref</p></td>
+<td class="parameter_description"><p>the <a class="link" href="hkl-hkl.html#HklGeometry" title="HklGeometry"><span class="type">HklGeometry</span></a> to compare with</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
 </div>
+<div class="refsect3">
+<a name="id-1.2.13.6.11.6"></a><h4>Returns</h4>
+<p> the distance between the two geometries</p>
+<p></p>
+</div>
+</div>
 <hr>
 <div class="refsect2">
-<a name="hkl-geometry-distance-orthodromic"></a><h3>hkl_geometry_distance_orthodromic ()</h3>
-<pre class="programlisting"><span class="returnvalue">double</span>              hkl_geometry_distance_orthodromic   (<em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklGeometry" title="HklGeometry"><span class="type">HklGeometry</span></a> *self</code></em>,
-                                                         <em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklGeometry" title="HklGeometry"><span class="type">HklGeometry</span></a> *ref</code></em>);</pre>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="hkl-geometry-distance-orthodromic"></a><h3>hkl_geometry_distance_orthodromic ()</h3>
+<pre class="programlisting"><span class="returnvalue">double</span>
+hkl_geometry_distance_orthodromic (<em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklGeometry" title="HklGeometry"><span class="type">HklGeometry</span></a> *self</code></em>,
+                                   <em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklGeometry" title="HklGeometry"><span class="type">HklGeometry</span></a> *ref</code></em>);</pre>
+<div class="refsect3">
+<a name="id-1.2.13.6.12.4"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
-<td>the this ptr</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>ref</code></em> :</span></p></td>
-<td>the reference <a class="link" href="hkl-hkl.html#HklGeometry" title="HklGeometry"><span class="type">HklGeometry</span></a> to compare with.</td>
+<td class="parameter_name"><p>self</p></td>
+<td class="parameter_description"><p>the this ptr</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>the orthodromique distance</td>
+<td class="parameter_name"><p>ref</p></td>
+<td class="parameter_description"><p>the reference <a class="link" href="hkl-hkl.html#HklGeometry" title="HklGeometry"><span class="type">HklGeometry</span></a> to compare with.</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
 </div>
+<div class="refsect3">
+<a name="id-1.2.13.6.12.5"></a><h4>Returns</h4>
+<p> the orthodromique distance</p>
+<p></p>
+</div>
+</div>
 <hr>
 <div class="refsect2">
-<a name="hkl-geometry-get-axis-by-name"></a><h3>hkl_geometry_get_axis_by_name ()</h3>
-<pre class="programlisting"><a class="link" href="hkl-hkl.html#HklParameter" title="HklParameter"><span class="returnvalue">HklParameter</span></a> *      hkl_geometry_get_axis_by_name       (<em class="parameter"><code><a class="link" href="hkl-hkl.html#HklGeometry" title="HklGeometry"><span class="type">HklGeometry</span></a> *self</code></em>,
-                                                         <em class="parameter"><code>const <span class="type">char</span> *name</code></em>);</pre>
-<p>
-get an <a class="link" href="hkl-hkl-axis-private.html#HklAxis" title="struct HklAxis"><span class="type">HklAxis</span></a> using its name
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody><tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
-</td>
-</tr></tbody>
-</table></div>
+<a name="hkl-geometry-closest-from-geometry-with-range"></a><h3>hkl_geometry_closest_from_geometry_with_range ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+hkl_geometry_closest_from_geometry_with_range
+                               (<em class="parameter"><code><a class="link" href="hkl-hkl.html#HklGeometry" title="HklGeometry"><span class="type">HklGeometry</span></a> *self</code></em>,
+                                <em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklGeometry" title="HklGeometry"><span class="type">HklGeometry</span></a> *ref</code></em>);</pre>
+<p>get the closest axes values in the HklInterval compatible with the
+current axes values</p>
+<div class="refsect3">
+<a name="id-1.2.13.6.13.5"></a><h4>Returns</h4>
+<p></p>
+</div>
 </div>
 <hr>
 <div class="refsect2">
-<a name="hkl-geometry-get-axis-idx-by-name"></a><h3>hkl_geometry_get_axis_idx_by_name ()</h3>
-<pre class="programlisting"><span class="returnvalue">int</span>                 hkl_geometry_get_axis_idx_by_name   (<em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklGeometry" title="HklGeometry"><span class="type">HklGeometry</span></a> *self</code></em>,
-                                                         <em class="parameter"><code>const <span class="type">char</span> *name</code></em>);</pre>
-<p>
-get the index of the axes named <em class="parameter"><code>name</code></em> in the geometry
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody><tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>-1 if the axis was not found</td>
-</tr></tbody>
-</table></div>
+<a name="hkl-geometry-is-valid"></a><h3>hkl_geometry_is_valid ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+hkl_geometry_is_valid (<em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklGeometry" title="HklGeometry"><span class="type">HklGeometry</span></a> *self</code></em>);</pre>
+<p>check if all axes of the <a class="link" href="hkl-hkl.html#HklGeometry" title="HklGeometry"><span class="type">HklGeometry</span></a> are valid.</p>
+<div class="refsect3">
+<a name="id-1.2.13.6.14.5"></a><h4>Returns</h4>
+<p></p>
+</div>
 </div>
 <hr>
 <div class="refsect2">
-<a name="hkl-geometry-init-geometry"></a><h3>hkl_geometry_init_geometry ()</h3>
-<pre class="programlisting"><span class="returnvalue">int</span>                 hkl_geometry_init_geometry          (<em class="parameter"><code><a class="link" href="hkl-hkl.html#HklGeometry" title="HklGeometry"><span class="type">HklGeometry</span></a> *self</code></em>,
-                                                         <em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklGeometry" title="HklGeometry"><span class="type">HklGeometry</span></a> *src</code></em>);</pre>
-<p>
-initilize an HklGeometry
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
-<td>the this ptr</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>src</code></em> :</span></p></td>
-<td>the <a class="link" href="hkl-hkl.html#HklGeometry" title="HklGeometry"><span class="type">HklGeometry</span></a> to set from</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>TRUE on success, FALSE if an error occurred</td>
-</tr>
-</tbody>
-</table></div>
+<a name="hkl-geometry-list-new"></a><h3>hkl_geometry_list_new ()</h3>
+<pre class="programlisting"><a class="link" href="hkl-hkl.html#HklGeometryList" title="HklGeometryList"><span class="returnvalue">HklGeometryList</span></a> *
+hkl_geometry_list_new (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
+<p>constructor</p>
+<div class="refsect3">
+<a name="id-1.2.13.6.15.5"></a><h4>Returns</h4>
+<p></p>
+</div>
 </div>
 <hr>
 <div class="refsect2">
-<a name="hkl-geometry-is-valid"></a><h3>hkl_geometry_is_valid ()</h3>
-<pre class="programlisting"><span class="returnvalue">int</span>                 hkl_geometry_is_valid               (<em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklGeometry" title="HklGeometry"><span class="type">HklGeometry</span></a> *self</code></em>);</pre>
-<p>
-check if all axes of the <a class="link" href="hkl-hkl.html#HklGeometry" title="HklGeometry"><span class="type">HklGeometry</span></a> are valid.
-</p>
+<a name="hkl-geometry-list-new-copy"></a><h3>hkl_geometry_list_new_copy ()</h3>
+<pre class="programlisting"><a class="link" href="hkl-hkl.html#HklGeometryList" title="HklGeometryList"><span class="returnvalue">HklGeometryList</span></a> *
+hkl_geometry_list_new_copy (<em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklGeometryList" title="HklGeometryList"><span class="type">HklGeometryList</span></a> *self</code></em>);</pre>
+<p>copy constructor</p>
+<div class="refsect3">
+<a name="id-1.2.13.6.16.5"></a><h4>Returns</h4>
+<p></p>
+</div>
 </div>
 <hr>
 <div class="refsect2">
-<a name="hkl-geometry-list-add"></a><h3>hkl_geometry_list_add ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                hkl_geometry_list_add               (<em class="parameter"><code><a class="link" href="hkl-hkl.html#HklGeometryList" title="HklGeometryList"><span class="type">HklGeometryList</span></a> *self</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="hkl-hkl.html#HklGeometry" title="HklGeometry"><span class="type">HklGeometry</span></a> *geometry</code></em>);</pre>
-<p>
-this method Add a geometry to the geometries
-</p>
-<p>
-This method try to be clever by allocating memory only if the
+<a name="hkl-geometry-list-add"></a><h3>hkl_geometry_list_add ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+hkl_geometry_list_add (<em class="parameter"><code><a class="link" href="hkl-hkl.html#HklGeometryList" title="HklGeometryList"><span class="type">HklGeometryList</span></a> *self</code></em>,
+                       <em class="parameter"><code><a class="link" href="hkl-hkl.html#HklGeometry" title="HklGeometry"><span class="type">HklGeometry</span></a> *geometry</code></em>);</pre>
+<p>this method Add a geometry to the geometries</p>
+<p>This method try to be clever by allocating memory only if the
 current length of the geometries is not large enought. Then it just
 set the geometry axes and copy it to the right geometries. We do
-not gives the x len as it is equal to the self->axes_len.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+not gives the x len as it is equal to the self->axes_len.</p>
+<div class="refsect3">
+<a name="id-1.2.13.6.17.6"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
-<td>The current <a class="link" href="hkl-hkl.html#HklGeometryList" title="HklGeometryList"><span class="type">HklGeometryList</span></a>
-</td>
+<td class="parameter_name"><p>self</p></td>
+<td class="parameter_description"><p>The current <a class="link" href="hkl-hkl.html#HklGeometryList" title="HklGeometryList"><span class="type">HklGeometryList</span></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>geometry</code></em> :</span></p></td>
-<td>the <a class="link" href="hkl-hkl.html#HklGeometry" title="HklGeometry"><span class="type">HklGeometry</span></a> to add</td>
+<td class="parameter_name"><p>geometry</p></td>
+<td class="parameter_description"><p>the <a class="link" href="hkl-hkl.html#HklGeometry" title="HklGeometry"><span class="type">HklGeometry</span></a> to add</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
 </div>
+</div>
 <hr>
 <div class="refsect2">
-<a name="hkl-geometry-list-fprintf"></a><h3>hkl_geometry_list_fprintf ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                hkl_geometry_list_fprintf           (<em class="parameter"><code><span class="type">FILE</span> *f</code></em>,
-                                                         <em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklGeometryList" title="HklGeometryList"><span class="type">HklGeometryList</span></a> *self</code></em>);</pre>
-<p>
-print to a file the <a class="link" href="hkl-hkl.html#HklGeometryList" title="HklGeometryList"><span class="type">HklGeometryList</span></a>
-</p>
+<a name="hkl-geometry-list-reset"></a><h3>hkl_geometry_list_reset ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+hkl_geometry_list_reset (<em class="parameter"><code><a class="link" href="hkl-hkl.html#HklGeometryList" title="HklGeometryList"><span class="type">HklGeometryList</span></a> *self</code></em>);</pre>
+<p>reset the HklGeometry, in fact it is a sort of clean method remove
+all the items of the list.</p>
+<div class="refsect3">
+<a name="id-1.2.13.6.18.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>self</p></td>
+<td class="parameter_description"><p>the this ptr</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
 </div>
 <hr>
 <div class="refsect2">
-<a name="hkl-geometry-list-item-free"></a><h3>hkl_geometry_list_item_free ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                hkl_geometry_list_item_free         (<em class="parameter"><code><a class="link" href="hkl-hkl.html#HklGeometryListItem" title="HklGeometryListItem"><span class="type">HklGeometryListItem</span></a> *self</code></em>);</pre>
-<p>
-destructor
-</p>
+<a name="hkl-geometry-list-sort"></a><h3>hkl_geometry_list_sort ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+hkl_geometry_list_sort (<em class="parameter"><code><a class="link" href="hkl-hkl.html#HklGeometryList" title="HklGeometryList"><span class="type">HklGeometryList</span></a> *self</code></em>,
+                        <em class="parameter"><code><a class="link" href="hkl-hkl.html#HklGeometry" title="HklGeometry"><span class="type">HklGeometry</span></a> *ref</code></em>);</pre>
+<p>sort the <a class="link" href="hkl-hkl.html#HklGeometryList" title="HklGeometryList"><span class="type">HklGeometryList</span></a> compare to the distance of the given
+<a class="link" href="hkl-hkl.html#HklGeometry" title="HklGeometry"><span class="type">HklGeometry</span></a></p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="hkl-geometry-list-item-new"></a><h3>hkl_geometry_list_item_new ()</h3>
-<pre class="programlisting"><a class="link" href="hkl-hkl.html#HklGeometryListItem" title="HklGeometryListItem"><span class="returnvalue">HklGeometryListItem</span></a> * hkl_geometry_list_item_new        (<em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklGeometry" title="HklGeometry"><span class="type">HklGeometry</span></a> *geometry</code></em>);</pre>
-<p>
-constructor
-</p>
+<a name="hkl-geometry-list-fprintf"></a><h3>hkl_geometry_list_fprintf ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+hkl_geometry_list_fprintf (<em class="parameter"><code><span class="type">FILE</span> *f</code></em>,
+                           <em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklGeometryList" title="HklGeometryList"><span class="type">HklGeometryList</span></a> *self</code></em>);</pre>
+<p>print to a file the <a class="link" href="hkl-hkl.html#HklGeometryList" title="HklGeometryList"><span class="type">HklGeometryList</span></a></p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="hkl-geometry-list-item-new-copy"></a><h3>hkl_geometry_list_item_new_copy ()</h3>
-<pre class="programlisting"><a class="link" href="hkl-hkl.html#HklGeometryListItem" title="HklGeometryListItem"><span class="returnvalue">HklGeometryListItem</span></a> * hkl_geometry_list_item_new_copy   (<em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklGeometryListItem" title="HklGeometryListItem"><span class="type">HklGeometryListItem</span></a> *self</code></em>);</pre>
-<p>
-copy constructor
-</p>
+<a name="hkl-geometry-list-multiply"></a><h3>hkl_geometry_list_multiply ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+hkl_geometry_list_multiply (<em class="parameter"><code><a class="link" href="hkl-hkl.html#HklGeometryList" title="HklGeometryList"><span class="type">HklGeometryList</span></a> *self</code></em>);</pre>
+<p>apply the multiply lenthod to the <a class="link" href="hkl-hkl.html#HklGeometry" title="HklGeometry"><span class="type">HklGeometry</span></a></p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="hkl-geometry-list-multiply"></a><h3>hkl_geometry_list_multiply ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                hkl_geometry_list_multiply          (<em class="parameter"><code><a class="link" href="hkl-hkl.html#HklGeometryList" title="HklGeometryList"><span class="type">HklGeometryList</span></a> *self</code></em>);</pre>
-<p>
-apply the multiply lenthod to the <a class="link" href="hkl-hkl.html#HklGeometry" title="HklGeometry"><span class="type">HklGeometry</span></a>
-</p>
+<a name="hkl-geometry-list-multiply-from-range"></a><h3>hkl_geometry_list_multiply_from_range ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+hkl_geometry_list_multiply_from_range (<em class="parameter"><code><a class="link" href="hkl-hkl.html#HklGeometryList" title="HklGeometryList"><span class="type">HklGeometryList</span></a> *self</code></em>);</pre>
 </div>
 <hr>
 <div class="refsect2">
-<a name="hkl-geometry-list-multiply-from-range"></a><h3>hkl_geometry_list_multiply_from_range ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                hkl_geometry_list_multiply_from_range
-                                                        (<em class="parameter"><code><a class="link" href="hkl-hkl.html#HklGeometryList" title="HklGeometryList"><span class="type">HklGeometryList</span></a> *self</code></em>);</pre>
+<a name="hkl-geometry-list-remove-invalid"></a><h3>hkl_geometry_list_remove_invalid ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+hkl_geometry_list_remove_invalid (<em class="parameter"><code><a class="link" href="hkl-hkl.html#HklGeometryList" title="HklGeometryList"><span class="type">HklGeometryList</span></a> *self</code></em>);</pre>
+<p>remove all invalid <a class="link" href="hkl-hkl.html#HklGeometry" title="HklGeometry"><span class="type">HklGeometry</span></a> from the <a class="link" href="hkl-hkl.html#HklGeometryList" title="HklGeometryList"><span class="type">HklGeometryList</span></a></p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="hkl-geometry-list-new"></a><h3>hkl_geometry_list_new ()</h3>
-<pre class="programlisting"><a class="link" href="hkl-hkl.html#HklGeometryList" title="HklGeometryList"><span class="returnvalue">HklGeometryList</span></a> *   hkl_geometry_list_new               (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
-<p>
-constructor
-</p>
+<a name="hkl-geometry-list-item-new"></a><h3>hkl_geometry_list_item_new ()</h3>
+<pre class="programlisting"><a class="link" href="hkl-hkl.html#HklGeometryListItem" title="HklGeometryListItem"><span class="returnvalue">HklGeometryListItem</span></a> *
+hkl_geometry_list_item_new (<em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklGeometry" title="HklGeometry"><span class="type">HklGeometry</span></a> *geometry</code></em>);</pre>
+<p>constructor</p>
+<div class="refsect3">
+<a name="id-1.2.13.6.24.5"></a><h4>Returns</h4>
+<p></p>
+</div>
 </div>
 <hr>
 <div class="refsect2">
-<a name="hkl-geometry-list-new-copy"></a><h3>hkl_geometry_list_new_copy ()</h3>
-<pre class="programlisting"><a class="link" href="hkl-hkl.html#HklGeometryList" title="HklGeometryList"><span class="returnvalue">HklGeometryList</span></a> *   hkl_geometry_list_new_copy          (<em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklGeometryList" title="HklGeometryList"><span class="type">HklGeometryList</span></a> *self</code></em>);</pre>
-<p>
-copy constructor
-</p>
+<a name="hkl-geometry-list-item-new-copy"></a><h3>hkl_geometry_list_item_new_copy ()</h3>
+<pre class="programlisting"><a class="link" href="hkl-hkl.html#HklGeometryListItem" title="HklGeometryListItem"><span class="returnvalue">HklGeometryListItem</span></a> *
+hkl_geometry_list_item_new_copy (<em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklGeometryListItem" title="HklGeometryListItem"><span class="type">HklGeometryListItem</span></a> *self</code></em>);</pre>
+<p>copy constructor</p>
+<div class="refsect3">
+<a name="id-1.2.13.6.25.5"></a><h4>Returns</h4>
+<p></p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="hkl-geometry-list-item-free"></a><h3>hkl_geometry_list_item_free ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+hkl_geometry_list_item_free (<em class="parameter"><code><a class="link" href="hkl-hkl.html#HklGeometryListItem" title="HklGeometryListItem"><span class="type">HklGeometryListItem</span></a> *self</code></em>);</pre>
+<p>destructor</p>
+</div>
+</div>
+<div class="refsect1">
+<a name="hkl-hkl-geometry-private.other_details"></a><h2>Types and Values</h2>
+<div class="refsect2">
+<a name="darray-holder"></a><h3>darray_holder</h3>
+<pre class="programlisting">typedef darray(HklHolder *) darray_holder;
+</pre>
 </div>
 <hr>
 <div class="refsect2">
-<a name="hkl-geometry-list-remove-invalid"></a><h3>hkl_geometry_list_remove_invalid ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                hkl_geometry_list_remove_invalid    (<em class="parameter"><code><a class="link" href="hkl-hkl.html#HklGeometryList" title="HklGeometryList"><span class="type">HklGeometryList</span></a> *self</code></em>);</pre>
-<p>
-remove all invalid <a class="link" href="hkl-hkl.html#HklGeometry" title="HklGeometry"><span class="type">HklGeometry</span></a> from the <a class="link" href="hkl-hkl.html#HklGeometryList" title="HklGeometryList"><span class="type">HklGeometryList</span></a>
-</p>
+<a name="HklHolderConfig"></a><h3>struct HklHolderConfig</h3>
+<pre class="programlisting">struct HklHolderConfig {
+	int gc;
+	size_t *idx;
+	size_t len;
+};
+</pre>
 </div>
 <hr>
 <div class="refsect2">
-<a name="hkl-geometry-list-reset"></a><h3>hkl_geometry_list_reset ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                hkl_geometry_list_reset             (<em class="parameter"><code><a class="link" href="hkl-hkl.html#HklGeometryList" title="HklGeometryList"><span class="type">HklGeometryList</span></a> *self</code></em>);</pre>
-<p>
-reset the HklGeometry, in fact it is a sort of clean method remove
-all the items of the list.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody><tr>
-<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
-<td>the this ptr</td>
-</tr></tbody>
-</table></div>
+<a name="HklHolder"></a><h3>struct HklHolder</h3>
+<pre class="programlisting">struct HklHolder {
+	struct HklHolderConfig *config;
+	HklGeometry *geometry;
+	HklQuaternion q;
+};
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="HklGeometry"></a><h3>HklGeometry</h3>
+<pre class="programlisting">typedef struct {
+	const HklFactory *factory;
+	HklSource source;
+	darray_parameter axes;
+	darray_holder holders;
+} HklGeometry;
+</pre>
 </div>
 <hr>
 <div class="refsect2">
-<a name="hkl-geometry-list-sort"></a><h3>hkl_geometry_list_sort ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                hkl_geometry_list_sort              (<em class="parameter"><code><a class="link" href="hkl-hkl.html#HklGeometryList" title="HklGeometryList"><span class="type">HklGeometryList</span></a> *self</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="hkl-hkl.html#HklGeometry" title="HklGeometry"><span class="type">HklGeometry</span></a> *ref</code></em>);</pre>
-<p>
-sort the <a class="link" href="hkl-hkl.html#HklGeometryList" title="HklGeometryList"><span class="type">HklGeometryList</span></a> compare to the distance of the given
-<a class="link" href="hkl-hkl.html#HklGeometry" title="HklGeometry"><span class="type">HklGeometry</span></a>
-</p>
+<a name="HKL-GEOMETRY-ERROR:CAPS"></a><h3>HKL_GEOMETRY_ERROR</h3>
+<pre class="programlisting">#define HKL_GEOMETRY_ERROR hkl_geometry_error_quark ()
+</pre>
 </div>
 <hr>
 <div class="refsect2">
-<a name="hkl-geometry-new"></a><h3>hkl_geometry_new ()</h3>
-<pre class="programlisting"><a class="link" href="hkl-hkl.html#HklGeometry" title="HklGeometry"><span class="returnvalue">HklGeometry</span></a> *       hkl_geometry_new                    (<em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklFactory" title="HklFactory"><span class="type">HklFactory</span></a> *factory</code></em>);</pre>
-<p>
-constructor
-</p>
+<a name="HklGeometryError"></a><h3>enum HklGeometryError</h3>
+<div class="refsect3">
+<a name="id-1.2.13.7.7.3"></a><h4>Members</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="300px" class="enum_members_name">
+<col class="enum_members_description">
+<col width="200px" class="enum_members_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="enum_member_name"><p><a name="HKL-GEOMETRY-ERROR-AXIS-GET:CAPS"></a>HKL_GEOMETRY_ERROR_AXIS_GET</p></td>
+<td> </td>
+<td> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="HKL-GEOMETRY-ERROR-AXIS-SET:CAPS"></a>HKL_GEOMETRY_ERROR_AXIS_SET</p></td>
+<td> </td>
+<td> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
 </div>
 <hr>
 <div class="refsect2">
-<a name="hkl-geometry-update"></a><h3>hkl_geometry_update ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                hkl_geometry_update                 (<em class="parameter"><code><a class="link" href="hkl-hkl.html#HklGeometry" title="HklGeometry"><span class="type">HklGeometry</span></a> *self</code></em>);</pre>
-<p>
-update the geometry internal once an Axis values changed
-</p>
+<a name="HklGeometryList"></a><h3>HklGeometryList</h3>
+<pre class="programlisting">typedef struct {
+	HklGeometryListMultiplyFunction multiply;
+	struct list_head items;
+	size_t n_items;
+} HklGeometryList;
+</pre>
 </div>
 <hr>
 <div class="refsect2">
-<a name="hkl-holder-add-rotation-axis"></a><h3>hkl_holder_add_rotation_axis ()</h3>
-<pre class="programlisting"><a class="link" href="hkl-hkl.html#HklParameter" title="HklParameter"><span class="returnvalue">HklParameter</span></a> *      hkl_holder_add_rotation_axis        (<em class="parameter"><code><a class="link" href="hkl-hkl-geometry-private.html#HklHolder" title="struct HklHolder"><span class="type">HklHolder</span></a> *self</code></em>,
-                                                         <em class="parameter"><code><span class="type">char</span> const *name</code></em>,
-                                                         <em class="parameter"><code><span class="type">double</span> x</code></em>,
-                                                         <em class="parameter"><code><span class="type">double</span> y</code></em>,
-                                                         <em class="parameter"><code><span class="type">double</span> z</code></em>);</pre>
+<a name="HklGeometryListItem"></a><h3>HklGeometryListItem</h3>
+<pre class="programlisting">typedef struct {
+	struct list_node list;
+	HklGeometry *geometry;
+} HklGeometryListItem;
+</pre>
 </div>
 </div>
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/Documentation/api/html/hkl-hkl-interval-private.html b/Documentation/api/html/hkl-hkl-interval-private.html
index a1f3f88..d6b621d 100644
--- a/Documentation/api/html/hkl-hkl-interval-private.html
+++ b/Documentation/api/html/hkl-hkl-interval-private.html
@@ -2,30 +2,26 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>hkl-interval-private</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<title>hkl Reference Manual: hkl-interval-private</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="hkl Reference Manual">
 <link rel="up" href="ch01.html" title="[Insert title here]">
 <link rel="prev" href="hkl-hkl-geometry-private.html" title="hkl-geometry-private">
 <link rel="next" href="hkl-hkl-lattice-private.html" title="hkl-lattice-private">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
-<tr valign="middle">
-<td><a accesskey="p" href="hkl-hkl-geometry-private.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">hkl Reference Manual</th>
-<td><a accesskey="n" href="hkl-hkl-lattice-private.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
-</tr>
-<tr><td colspan="5" class="shortcuts">
-<a href="#hkl-hkl-interval-private.synopsis" class="shortcut">Top</a>
-                   | 
-                  <a href="#hkl-hkl-interval-private.description" class="shortcut">Description</a>
-</td></tr>
-</table>
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts">
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+                  <a href="#hkl-hkl-interval-private.description" class="shortcut">Description</a></span>
+</td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="p" href="hkl-hkl-geometry-private.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="hkl-hkl-lattice-private.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
 <div class="refentry">
 <a name="hkl-hkl-interval-private"></a><div class="titlepage"></div>
 <div class="refnamediv"><table width="100%"><tr>
@@ -33,217 +29,360 @@
 <h2><span class="refentrytitle"><a name="hkl-hkl-interval-private.top_of_page"></a>hkl-interval-private</span></h2>
 <p>hkl-interval-private</p>
 </td>
-<td valign="top" align="right"></td>
+<td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
-<div class="refsynopsisdiv">
-<a name="hkl-hkl-interval-private.synopsis"></a><h2>Synopsis</h2>
-<pre class="synopsis">struct              <a class="link" href="hkl-hkl-interval-private.html#HklInterval" title="struct HklInterval">HklInterval</a>;
-<span class="returnvalue">void</span>                <a class="link" href="hkl-hkl-interval-private.html#hkl-interval-acos" title="hkl_interval_acos ()">hkl_interval_acos</a>                   (<em class="parameter"><code><a class="link" href="hkl-hkl-interval-private.html#HklInterval" title="struct HklInterval"><span class="type">HklInterval</span></a> *self</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="hkl-hkl-interval-private.html#hkl-interval-angle-restrict-symm" title="hkl_interval_angle_restrict_symm ()">hkl_interval_angle_restrict_symm</a>    (<em class="parameter"><code><a class="link" href="hkl-hkl-interval-private.html#HklInterval" title="struct HklInterval"><span class="type">HklInterval</span></a> *self</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="hkl-hkl-interval-private.html#hkl-interval-asin" title="hkl_interval_asin ()">hkl_interval_asin</a>                   (<em class="parameter"><code><a class="link" href="hkl-hkl-interval-private.html#HklInterval" title="struct HklInterval"><span class="type">HklInterval</span></a> *self</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="hkl-hkl-interval-private.html#hkl-interval-atan" title="hkl_interval_atan ()">hkl_interval_atan</a>                   (<em class="parameter"><code><a class="link" href="hkl-hkl-interval-private.html#HklInterval" title="struct HklInterval"><span class="type">HklInterval</span></a> *self</code></em>);
-<span class="returnvalue">int</span>                 <a class="link" href="hkl-hkl-interval-private.html#hkl-interval-cmp" title="hkl_interval_cmp ()">hkl_interval_cmp</a>                    (<em class="parameter"><code>const <a class="link" href="hkl-hkl-interval-private.html#HklInterval" title="struct HklInterval"><span class="type">HklInterval</span></a> *self</code></em>,
-                                                         <em class="parameter"><code>const <a class="link" href="hkl-hkl-interval-private.html#HklInterval" title="struct HklInterval"><span class="type">HklInterval</span></a> *interval</code></em>);
-<span class="returnvalue">int</span>                 <a class="link" href="hkl-hkl-interval-private.html#hkl-interval-contain-zero" title="hkl_interval_contain_zero ()">hkl_interval_contain_zero</a>           (<em class="parameter"><code>const <a class="link" href="hkl-hkl-interval-private.html#HklInterval" title="struct HklInterval"><span class="type">HklInterval</span></a> *self</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="hkl-hkl-interval-private.html#hkl-interval-cos" title="hkl_interval_cos ()">hkl_interval_cos</a>                    (<em class="parameter"><code><a class="link" href="hkl-hkl-interval-private.html#HklInterval" title="struct HklInterval"><span class="type">HklInterval</span></a> *self</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="hkl-hkl-interval-private.html#hkl-interval-divides-double" title="hkl_interval_divides_double ()">hkl_interval_divides_double</a>         (<em class="parameter"><code><a class="link" href="hkl-hkl-interval-private.html#HklInterval" title="struct HklInterval"><span class="type">HklInterval</span></a> *self</code></em>,
-                                                         <em class="parameter"><code><span class="type">double</span> const d</code></em>);
-<a class="link" href="hkl-hkl-interval-private.html#HklInterval" title="struct HklInterval"><span class="returnvalue">HklInterval</span></a> *       <a class="link" href="hkl-hkl-interval-private.html#hkl-interval-dup" title="hkl_interval_dup ()">hkl_interval_dup</a>                    (<em class="parameter"><code>const <a class="link" href="hkl-hkl-interval-private.html#HklInterval" title="struct HklInterval"><span class="type">HklInterval</span></a> *self</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="hkl-hkl-interval-private.html#hkl-interval-free" title="hkl_interval_free ()">hkl_interval_free</a>                   (<em class="parameter"><code><a class="link" href="hkl-hkl-interval-private.html#HklInterval" title="struct HklInterval"><span class="type">HklInterval</span></a> *self</code></em>);
-<span class="returnvalue">double</span>              <a class="link" href="hkl-hkl-interval-private.html#hkl-interval-length" title="hkl_interval_length ()">hkl_interval_length</a>                 (<em class="parameter"><code>const <a class="link" href="hkl-hkl-interval-private.html#HklInterval" title="struct HklInterval"><span class="type">HklInterval</span></a> *self</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="hkl-hkl-interval-private.html#hkl-interval-minus-double" title="hkl_interval_minus_double ()">hkl_interval_minus_double</a>           (<em class="parameter"><code><a class="link" href="hkl-hkl-interval-private.html#HklInterval" title="struct HklInterval"><span class="type">HklInterval</span></a> *self</code></em>,
-                                                         <em class="parameter"><code><span class="type">double</span> const d</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="hkl-hkl-interval-private.html#hkl-interval-minus-interval" title="hkl_interval_minus_interval ()">hkl_interval_minus_interval</a>         (<em class="parameter"><code><a class="link" href="hkl-hkl-interval-private.html#HklInterval" title="struct HklInterval"><span class="type">HklInterval</span></a> *self</code></em>,
-                                                         <em class="parameter"><code>const <a class="link" href="hkl-hkl-interval-private.html#HklInterval" title="struct HklInterval"><span class="type">HklInterval</span></a> *interval</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="hkl-hkl-interval-private.html#hkl-interval-plus-double" title="hkl_interval_plus_double ()">hkl_interval_plus_double</a>            (<em class="parameter"><code><a class="link" href="hkl-hkl-interval-private.html#HklInterval" title="struct HklInterval"><span class="type">HklInterval</span></a> *self</code></em>,
-                                                         <em class="parameter"><code><span class="type">double</span> const d</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="hkl-hkl-interval-private.html#hkl-interval-plus-interval" title="hkl_interval_plus_interval ()">hkl_interval_plus_interval</a>          (<em class="parameter"><code><a class="link" href="hkl-hkl-interval-private.html#HklInterval" title="struct HklInterval"><span class="type">HklInterval</span></a> *self</code></em>,
-                                                         <em class="parameter"><code>const <a class="link" href="hkl-hkl-interval-private.html#HklInterval" title="struct HklInterval"><span class="type">HklInterval</span></a> *interval</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="hkl-hkl-interval-private.html#hkl-interval-sin" title="hkl_interval_sin ()">hkl_interval_sin</a>                    (<em class="parameter"><code><a class="link" href="hkl-hkl-interval-private.html#HklInterval" title="struct HklInterval"><span class="type">HklInterval</span></a> *self</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="hkl-hkl-interval-private.html#hkl-interval-tan" title="hkl_interval_tan ()">hkl_interval_tan</a>                    (<em class="parameter"><code><a class="link" href="hkl-hkl-interval-private.html#HklInterval" title="struct HklInterval"><span class="type">HklInterval</span></a> *self</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="hkl-hkl-interval-private.html#hkl-interval-times-double" title="hkl_interval_times_double ()">hkl_interval_times_double</a>           (<em class="parameter"><code><a class="link" href="hkl-hkl-interval-private.html#HklInterval" title="struct HklInterval"><span class="type">HklInterval</span></a> *self</code></em>,
-                                                         <em class="parameter"><code><span class="type">double</span> const d</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="hkl-hkl-interval-private.html#hkl-interval-times-interval" title="hkl_interval_times_interval ()">hkl_interval_times_interval</a>         (<em class="parameter"><code><a class="link" href="hkl-hkl-interval-private.html#HklInterval" title="struct HklInterval"><span class="type">HklInterval</span></a> *self</code></em>,
-                                                         <em class="parameter"><code>const <a class="link" href="hkl-hkl-interval-private.html#HklInterval" title="struct HklInterval"><span class="type">HklInterval</span></a> *interval</code></em>);
-</pre>
+<div class="refsect1">
+<a name="hkl-hkl-interval-private.functions"></a><h2>Functions</h2>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="functions_return">
+<col class="functions_name">
+</colgroup>
+<tbody>
+<tr>
+<td class="function_type">
+<a class="link" href="hkl-hkl-interval-private.html#HklInterval" title="struct HklInterval"><span class="returnvalue">HklInterval</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="hkl-hkl-interval-private.html#hkl-interval-dup" title="hkl_interval_dup ()">hkl_interval_dup</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="hkl-hkl-interval-private.html#hkl-interval-free" title="hkl_interval_free ()">hkl_interval_free</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">int</span>
+</td>
+<td class="function_name">
+<a class="link" href="hkl-hkl-interval-private.html#hkl-interval-cmp" title="hkl_interval_cmp ()">hkl_interval_cmp</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="hkl-hkl-interval-private.html#hkl-interval-plus-interval" title="hkl_interval_plus_interval ()">hkl_interval_plus_interval</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="hkl-hkl-interval-private.html#hkl-interval-plus-double" title="hkl_interval_plus_double ()">hkl_interval_plus_double</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="hkl-hkl-interval-private.html#hkl-interval-minus-interval" title="hkl_interval_minus_interval ()">hkl_interval_minus_interval</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="hkl-hkl-interval-private.html#hkl-interval-minus-double" title="hkl_interval_minus_double ()">hkl_interval_minus_double</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="hkl-hkl-interval-private.html#hkl-interval-times-interval" title="hkl_interval_times_interval ()">hkl_interval_times_interval</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="hkl-hkl-interval-private.html#hkl-interval-times-double" title="hkl_interval_times_double ()">hkl_interval_times_double</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="hkl-hkl-interval-private.html#hkl-interval-divides-double" title="hkl_interval_divides_double ()">hkl_interval_divides_double</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">int</span>
+</td>
+<td class="function_name">
+<a class="link" href="hkl-hkl-interval-private.html#hkl-interval-contain-zero" title="hkl_interval_contain_zero ()">hkl_interval_contain_zero</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="hkl-hkl-interval-private.html#hkl-interval-cos" title="hkl_interval_cos ()">hkl_interval_cos</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="hkl-hkl-interval-private.html#hkl-interval-acos" title="hkl_interval_acos ()">hkl_interval_acos</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="hkl-hkl-interval-private.html#hkl-interval-sin" title="hkl_interval_sin ()">hkl_interval_sin</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="hkl-hkl-interval-private.html#hkl-interval-asin" title="hkl_interval_asin ()">hkl_interval_asin</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="hkl-hkl-interval-private.html#hkl-interval-tan" title="hkl_interval_tan ()">hkl_interval_tan</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="hkl-hkl-interval-private.html#hkl-interval-atan" title="hkl_interval_atan ()">hkl_interval_atan</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">double</span>
+</td>
+<td class="function_name">
+<a class="link" href="hkl-hkl-interval-private.html#hkl-interval-length" title="hkl_interval_length ()">hkl_interval_length</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="hkl-hkl-interval-private.html#hkl-interval-angle-restrict-symm" title="hkl_interval_angle_restrict_symm ()">hkl_interval_angle_restrict_symm</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="hkl-hkl-interval-private.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="name">
+<col class="description">
+</colgroup>
+<tbody><tr>
+<td class="datatype_keyword">struct</td>
+<td class="function_name"><a class="link" href="hkl-hkl-interval-private.html#HklInterval" title="struct HklInterval">HklInterval</a></td>
+</tr></tbody>
+</table></div>
 </div>
 <div class="refsect1">
 <a name="hkl-hkl-interval-private.description"></a><h2>Description</h2>
 </div>
 <div class="refsect1">
-<a name="hkl-hkl-interval-private.details"></a><h2>Details</h2>
+<a name="hkl-hkl-interval-private.functions_details"></a><h2>Functions</h2>
 <div class="refsect2">
-<a name="HklInterval"></a><h3>struct HklInterval</h3>
-<pre class="programlisting">struct HklInterval {
-	double min;
-	double max;
-};
-</pre>
+<a name="hkl-interval-dup"></a><h3>hkl_interval_dup ()</h3>
+<pre class="programlisting"><a class="link" href="hkl-hkl-interval-private.html#HklInterval" title="struct HklInterval"><span class="returnvalue">HklInterval</span></a> *
+hkl_interval_dup (<em class="parameter"><code>const <a class="link" href="hkl-hkl-interval-private.html#HklInterval" title="struct HklInterval"><span class="type">HklInterval</span></a> *self</code></em>);</pre>
+<p>copy an <a class="link" href="hkl-hkl-interval-private.html#HklInterval" title="struct HklInterval"><span class="type">HklInterval</span></a></p>
+<div class="refsect3">
+<a name="id-1.2.14.6.2.5"></a><h4>Returns</h4>
+<p></p>
+</div>
 </div>
 <hr>
 <div class="refsect2">
-<a name="hkl-interval-acos"></a><h3>hkl_interval_acos ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                hkl_interval_acos                   (<em class="parameter"><code><a class="link" href="hkl-hkl-interval-private.html#HklInterval" title="struct HklInterval"><span class="type">HklInterval</span></a> *self</code></em>);</pre>
-<p>
-compute the arc cosinus of an <a class="link" href="hkl-hkl-interval-private.html#HklInterval" title="struct HklInterval"><span class="type">HklInterval</span></a>
-</p>
+<a name="hkl-interval-free"></a><h3>hkl_interval_free ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+hkl_interval_free (<em class="parameter"><code><a class="link" href="hkl-hkl-interval-private.html#HklInterval" title="struct HklInterval"><span class="type">HklInterval</span></a> *self</code></em>);</pre>
+<p>delete an <a class="link" href="hkl-hkl-interval-private.html#HklInterval" title="struct HklInterval"><span class="type">HklInterval</span></a></p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="hkl-interval-angle-restrict-symm"></a><h3>hkl_interval_angle_restrict_symm ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                hkl_interval_angle_restrict_symm    (<em class="parameter"><code><a class="link" href="hkl-hkl-interval-private.html#HklInterval" title="struct HklInterval"><span class="type">HklInterval</span></a> *self</code></em>);</pre>
-<p>
-restrict an <a class="link" href="hkl-hkl-interval-private.html#HklInterval" title="struct HklInterval"><span class="type">HklInterval</span></a> into -pi, pi
-</p>
+<a name="hkl-interval-cmp"></a><h3>hkl_interval_cmp ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+hkl_interval_cmp (<em class="parameter"><code>const <a class="link" href="hkl-hkl-interval-private.html#HklInterval" title="struct HklInterval"><span class="type">HklInterval</span></a> *self</code></em>,
+                  <em class="parameter"><code>const <a class="link" href="hkl-hkl-interval-private.html#HklInterval" title="struct HklInterval"><span class="type">HklInterval</span></a> *interval</code></em>);</pre>
+<p>compare two intervals</p>
+<div class="refsect3">
+<a name="id-1.2.14.6.4.5"></a><h4>Returns</h4>
+<p></p>
+</div>
 </div>
 <hr>
 <div class="refsect2">
-<a name="hkl-interval-asin"></a><h3>hkl_interval_asin ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                hkl_interval_asin                   (<em class="parameter"><code><a class="link" href="hkl-hkl-interval-private.html#HklInterval" title="struct HklInterval"><span class="type">HklInterval</span></a> *self</code></em>);</pre>
-<p>
-compute the arc sinus of an <a class="link" href="hkl-hkl-interval-private.html#HklInterval" title="struct HklInterval"><span class="type">HklInterval</span></a>
-</p>
+<a name="hkl-interval-plus-interval"></a><h3>hkl_interval_plus_interval ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+hkl_interval_plus_interval (<em class="parameter"><code><a class="link" href="hkl-hkl-interval-private.html#HklInterval" title="struct HklInterval"><span class="type">HklInterval</span></a> *self</code></em>,
+                            <em class="parameter"><code>const <a class="link" href="hkl-hkl-interval-private.html#HklInterval" title="struct HklInterval"><span class="type">HklInterval</span></a> *interval</code></em>);</pre>
+<p>add two ontervals</p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="hkl-interval-atan"></a><h3>hkl_interval_atan ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                hkl_interval_atan                   (<em class="parameter"><code><a class="link" href="hkl-hkl-interval-private.html#HklInterval" title="struct HklInterval"><span class="type">HklInterval</span></a> *self</code></em>);</pre>
-<p>
-compute the arc tangente of an <a class="link" href="hkl-hkl-interval-private.html#HklInterval" title="struct HklInterval"><span class="type">HklInterval</span></a>
-</p>
+<a name="hkl-interval-plus-double"></a><h3>hkl_interval_plus_double ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+hkl_interval_plus_double (<em class="parameter"><code><a class="link" href="hkl-hkl-interval-private.html#HklInterval" title="struct HklInterval"><span class="type">HklInterval</span></a> *self</code></em>,
+                          <em class="parameter"><code><span class="type">double</span> const d</code></em>);</pre>
+<p>add to an interval a double</p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="hkl-interval-cmp"></a><h3>hkl_interval_cmp ()</h3>
-<pre class="programlisting"><span class="returnvalue">int</span>                 hkl_interval_cmp                    (<em class="parameter"><code>const <a class="link" href="hkl-hkl-interval-private.html#HklInterval" title="struct HklInterval"><span class="type">HklInterval</span></a> *self</code></em>,
-                                                         <em class="parameter"><code>const <a class="link" href="hkl-hkl-interval-private.html#HklInterval" title="struct HklInterval"><span class="type">HklInterval</span></a> *interval</code></em>);</pre>
-<p>
-compare two intervals
-</p>
+<a name="hkl-interval-minus-interval"></a><h3>hkl_interval_minus_interval ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+hkl_interval_minus_interval (<em class="parameter"><code><a class="link" href="hkl-hkl-interval-private.html#HklInterval" title="struct HklInterval"><span class="type">HklInterval</span></a> *self</code></em>,
+                             <em class="parameter"><code>const <a class="link" href="hkl-hkl-interval-private.html#HklInterval" title="struct HklInterval"><span class="type">HklInterval</span></a> *interval</code></em>);</pre>
+<p>substract two <a class="link" href="hkl-hkl-interval-private.html#HklInterval" title="struct HklInterval"><span class="type">HklInterval</span></a></p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="hkl-interval-contain-zero"></a><h3>hkl_interval_contain_zero ()</h3>
-<pre class="programlisting"><span class="returnvalue">int</span>                 hkl_interval_contain_zero           (<em class="parameter"><code>const <a class="link" href="hkl-hkl-interval-private.html#HklInterval" title="struct HklInterval"><span class="type">HklInterval</span></a> *self</code></em>);</pre>
-<p>
-check if an <a class="link" href="hkl-hkl-interval-private.html#HklInterval" title="struct HklInterval"><span class="type">HklInterval</span></a> contain zero
-</p>
+<a name="hkl-interval-minus-double"></a><h3>hkl_interval_minus_double ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+hkl_interval_minus_double (<em class="parameter"><code><a class="link" href="hkl-hkl-interval-private.html#HklInterval" title="struct HklInterval"><span class="type">HklInterval</span></a> *self</code></em>,
+                           <em class="parameter"><code><span class="type">double</span> const d</code></em>);</pre>
+<p>subst a double to an <a class="link" href="hkl-hkl-interval-private.html#HklInterval" title="struct HklInterval"><span class="type">HklInterval</span></a></p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="hkl-interval-cos"></a><h3>hkl_interval_cos ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                hkl_interval_cos                    (<em class="parameter"><code><a class="link" href="hkl-hkl-interval-private.html#HklInterval" title="struct HklInterval"><span class="type">HklInterval</span></a> *self</code></em>);</pre>
-<p>
-compute the cosinus of an <a class="link" href="hkl-hkl-interval-private.html#HklInterval" title="struct HklInterval"><span class="type">HklInterval</span></a>
-</p>
+<a name="hkl-interval-times-interval"></a><h3>hkl_interval_times_interval ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+hkl_interval_times_interval (<em class="parameter"><code><a class="link" href="hkl-hkl-interval-private.html#HklInterval" title="struct HklInterval"><span class="type">HklInterval</span></a> *self</code></em>,
+                             <em class="parameter"><code>const <a class="link" href="hkl-hkl-interval-private.html#HklInterval" title="struct HklInterval"><span class="type">HklInterval</span></a> *interval</code></em>);</pre>
+<p>multiply two <a class="link" href="hkl-hkl-interval-private.html#HklInterval" title="struct HklInterval"><span class="type">HklInterval</span></a></p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="hkl-interval-divides-double"></a><h3>hkl_interval_divides_double ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                hkl_interval_divides_double         (<em class="parameter"><code><a class="link" href="hkl-hkl-interval-private.html#HklInterval" title="struct HklInterval"><span class="type">HklInterval</span></a> *self</code></em>,
-                                                         <em class="parameter"><code><span class="type">double</span> const d</code></em>);</pre>
-<p>
-divide an <a class="link" href="hkl-hkl-interval-private.html#HklInterval" title="struct HklInterval"><span class="type">HklInterval</span></a> by a double
-</p>
+<a name="hkl-interval-times-double"></a><h3>hkl_interval_times_double ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+hkl_interval_times_double (<em class="parameter"><code><a class="link" href="hkl-hkl-interval-private.html#HklInterval" title="struct HklInterval"><span class="type">HklInterval</span></a> *self</code></em>,
+                           <em class="parameter"><code><span class="type">double</span> const d</code></em>);</pre>
+<p>multiply an <a class="link" href="hkl-hkl-interval-private.html#HklInterval" title="struct HklInterval"><span class="type">HklInterval</span></a> by a double</p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="hkl-interval-dup"></a><h3>hkl_interval_dup ()</h3>
-<pre class="programlisting"><a class="link" href="hkl-hkl-interval-private.html#HklInterval" title="struct HklInterval"><span class="returnvalue">HklInterval</span></a> *       hkl_interval_dup                    (<em class="parameter"><code>const <a class="link" href="hkl-hkl-interval-private.html#HklInterval" title="struct HklInterval"><span class="type">HklInterval</span></a> *self</code></em>);</pre>
-<p>
-copy an <a class="link" href="hkl-hkl-interval-private.html#HklInterval" title="struct HklInterval"><span class="type">HklInterval</span></a>
-</p>
+<a name="hkl-interval-divides-double"></a><h3>hkl_interval_divides_double ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+hkl_interval_divides_double (<em class="parameter"><code><a class="link" href="hkl-hkl-interval-private.html#HklInterval" title="struct HklInterval"><span class="type">HklInterval</span></a> *self</code></em>,
+                             <em class="parameter"><code><span class="type">double</span> const d</code></em>);</pre>
+<p>divide an <a class="link" href="hkl-hkl-interval-private.html#HklInterval" title="struct HklInterval"><span class="type">HklInterval</span></a> by a double</p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="hkl-interval-free"></a><h3>hkl_interval_free ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                hkl_interval_free                   (<em class="parameter"><code><a class="link" href="hkl-hkl-interval-private.html#HklInterval" title="struct HklInterval"><span class="type">HklInterval</span></a> *self</code></em>);</pre>
-<p>
-delete an <a class="link" href="hkl-hkl-interval-private.html#HklInterval" title="struct HklInterval"><span class="type">HklInterval</span></a>
-</p>
+<a name="hkl-interval-contain-zero"></a><h3>hkl_interval_contain_zero ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+hkl_interval_contain_zero (<em class="parameter"><code>const <a class="link" href="hkl-hkl-interval-private.html#HklInterval" title="struct HklInterval"><span class="type">HklInterval</span></a> *self</code></em>);</pre>
+<p>check if an <a class="link" href="hkl-hkl-interval-private.html#HklInterval" title="struct HklInterval"><span class="type">HklInterval</span></a> contain zero</p>
+<div class="refsect3">
+<a name="id-1.2.14.6.12.5"></a><h4>Returns</h4>
+<p></p>
+</div>
 </div>
 <hr>
 <div class="refsect2">
-<a name="hkl-interval-length"></a><h3>hkl_interval_length ()</h3>
-<pre class="programlisting"><span class="returnvalue">double</span>              hkl_interval_length                 (<em class="parameter"><code>const <a class="link" href="hkl-hkl-interval-private.html#HklInterval" title="struct HklInterval"><span class="type">HklInterval</span></a> *self</code></em>);</pre>
-<p>
-compute the length of an <a class="link" href="hkl-hkl-interval-private.html#HklInterval" title="struct HklInterval"><span class="type">HklInterval</span></a>
-</p>
+<a name="hkl-interval-cos"></a><h3>hkl_interval_cos ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+hkl_interval_cos (<em class="parameter"><code><a class="link" href="hkl-hkl-interval-private.html#HklInterval" title="struct HklInterval"><span class="type">HklInterval</span></a> *self</code></em>);</pre>
+<p>compute the cosinus of an <a class="link" href="hkl-hkl-interval-private.html#HklInterval" title="struct HklInterval"><span class="type">HklInterval</span></a></p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="hkl-interval-minus-double"></a><h3>hkl_interval_minus_double ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                hkl_interval_minus_double           (<em class="parameter"><code><a class="link" href="hkl-hkl-interval-private.html#HklInterval" title="struct HklInterval"><span class="type">HklInterval</span></a> *self</code></em>,
-                                                         <em class="parameter"><code><span class="type">double</span> const d</code></em>);</pre>
-<p>
-subst a double to an <a class="link" href="hkl-hkl-interval-private.html#HklInterval" title="struct HklInterval"><span class="type">HklInterval</span></a>
-</p>
+<a name="hkl-interval-acos"></a><h3>hkl_interval_acos ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+hkl_interval_acos (<em class="parameter"><code><a class="link" href="hkl-hkl-interval-private.html#HklInterval" title="struct HklInterval"><span class="type">HklInterval</span></a> *self</code></em>);</pre>
+<p>compute the arc cosinus of an <a class="link" href="hkl-hkl-interval-private.html#HklInterval" title="struct HklInterval"><span class="type">HklInterval</span></a></p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="hkl-interval-minus-interval"></a><h3>hkl_interval_minus_interval ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                hkl_interval_minus_interval         (<em class="parameter"><code><a class="link" href="hkl-hkl-interval-private.html#HklInterval" title="struct HklInterval"><span class="type">HklInterval</span></a> *self</code></em>,
-                                                         <em class="parameter"><code>const <a class="link" href="hkl-hkl-interval-private.html#HklInterval" title="struct HklInterval"><span class="type">HklInterval</span></a> *interval</code></em>);</pre>
-<p>
-substract two <a class="link" href="hkl-hkl-interval-private.html#HklInterval" title="struct HklInterval"><span class="type">HklInterval</span></a>
-</p>
+<a name="hkl-interval-sin"></a><h3>hkl_interval_sin ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+hkl_interval_sin (<em class="parameter"><code><a class="link" href="hkl-hkl-interval-private.html#HklInterval" title="struct HklInterval"><span class="type">HklInterval</span></a> *self</code></em>);</pre>
+<p>compute the sin of an <a class="link" href="hkl-hkl-interval-private.html#HklInterval" title="struct HklInterval"><span class="type">HklInterval</span></a></p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="hkl-interval-plus-double"></a><h3>hkl_interval_plus_double ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                hkl_interval_plus_double            (<em class="parameter"><code><a class="link" href="hkl-hkl-interval-private.html#HklInterval" title="struct HklInterval"><span class="type">HklInterval</span></a> *self</code></em>,
-                                                         <em class="parameter"><code><span class="type">double</span> const d</code></em>);</pre>
-<p>
-add to an interval a double
-</p>
+<a name="hkl-interval-asin"></a><h3>hkl_interval_asin ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+hkl_interval_asin (<em class="parameter"><code><a class="link" href="hkl-hkl-interval-private.html#HklInterval" title="struct HklInterval"><span class="type">HklInterval</span></a> *self</code></em>);</pre>
+<p>compute the arc sinus of an <a class="link" href="hkl-hkl-interval-private.html#HklInterval" title="struct HklInterval"><span class="type">HklInterval</span></a></p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="hkl-interval-plus-interval"></a><h3>hkl_interval_plus_interval ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                hkl_interval_plus_interval          (<em class="parameter"><code><a class="link" href="hkl-hkl-interval-private.html#HklInterval" title="struct HklInterval"><span class="type">HklInterval</span></a> *self</code></em>,
-                                                         <em class="parameter"><code>const <a class="link" href="hkl-hkl-interval-private.html#HklInterval" title="struct HklInterval"><span class="type">HklInterval</span></a> *interval</code></em>);</pre>
-<p>
-add two ontervals
-</p>
+<a name="hkl-interval-tan"></a><h3>hkl_interval_tan ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+hkl_interval_tan (<em class="parameter"><code><a class="link" href="hkl-hkl-interval-private.html#HklInterval" title="struct HklInterval"><span class="type">HklInterval</span></a> *self</code></em>);</pre>
+<p>compute the tangente of an <a class="link" href="hkl-hkl-interval-private.html#HklInterval" title="struct HklInterval"><span class="type">HklInterval</span></a></p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="hkl-interval-sin"></a><h3>hkl_interval_sin ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                hkl_interval_sin                    (<em class="parameter"><code><a class="link" href="hkl-hkl-interval-private.html#HklInterval" title="struct HklInterval"><span class="type">HklInterval</span></a> *self</code></em>);</pre>
-<p>
-compute the sin of an <a class="link" href="hkl-hkl-interval-private.html#HklInterval" title="struct HklInterval"><span class="type">HklInterval</span></a>
-</p>
+<a name="hkl-interval-atan"></a><h3>hkl_interval_atan ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+hkl_interval_atan (<em class="parameter"><code><a class="link" href="hkl-hkl-interval-private.html#HklInterval" title="struct HklInterval"><span class="type">HklInterval</span></a> *self</code></em>);</pre>
+<p>compute the arc tangente of an <a class="link" href="hkl-hkl-interval-private.html#HklInterval" title="struct HklInterval"><span class="type">HklInterval</span></a></p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="hkl-interval-tan"></a><h3>hkl_interval_tan ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                hkl_interval_tan                    (<em class="parameter"><code><a class="link" href="hkl-hkl-interval-private.html#HklInterval" title="struct HklInterval"><span class="type">HklInterval</span></a> *self</code></em>);</pre>
-<p>
-compute the tangente of an <a class="link" href="hkl-hkl-interval-private.html#HklInterval" title="struct HklInterval"><span class="type">HklInterval</span></a>
-</p>
+<a name="hkl-interval-length"></a><h3>hkl_interval_length ()</h3>
+<pre class="programlisting"><span class="returnvalue">double</span>
+hkl_interval_length (<em class="parameter"><code>const <a class="link" href="hkl-hkl-interval-private.html#HklInterval" title="struct HklInterval"><span class="type">HklInterval</span></a> *self</code></em>);</pre>
+<p>compute the length of an <a class="link" href="hkl-hkl-interval-private.html#HklInterval" title="struct HklInterval"><span class="type">HklInterval</span></a></p>
+<div class="refsect3">
+<a name="id-1.2.14.6.19.5"></a><h4>Returns</h4>
+<p></p>
+</div>
 </div>
 <hr>
 <div class="refsect2">
-<a name="hkl-interval-times-double"></a><h3>hkl_interval_times_double ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                hkl_interval_times_double           (<em class="parameter"><code><a class="link" href="hkl-hkl-interval-private.html#HklInterval" title="struct HklInterval"><span class="type">HklInterval</span></a> *self</code></em>,
-                                                         <em class="parameter"><code><span class="type">double</span> const d</code></em>);</pre>
-<p>
-multiply an <a class="link" href="hkl-hkl-interval-private.html#HklInterval" title="struct HklInterval"><span class="type">HklInterval</span></a> by a double
-</p>
+<a name="hkl-interval-angle-restrict-symm"></a><h3>hkl_interval_angle_restrict_symm ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+hkl_interval_angle_restrict_symm (<em class="parameter"><code><a class="link" href="hkl-hkl-interval-private.html#HklInterval" title="struct HklInterval"><span class="type">HklInterval</span></a> *self</code></em>);</pre>
+<p>restrict an <a class="link" href="hkl-hkl-interval-private.html#HklInterval" title="struct HklInterval"><span class="type">HklInterval</span></a> into -pi, pi</p>
 </div>
-<hr>
+</div>
+<div class="refsect1">
+<a name="hkl-hkl-interval-private.other_details"></a><h2>Types and Values</h2>
 <div class="refsect2">
-<a name="hkl-interval-times-interval"></a><h3>hkl_interval_times_interval ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                hkl_interval_times_interval         (<em class="parameter"><code><a class="link" href="hkl-hkl-interval-private.html#HklInterval" title="struct HklInterval"><span class="type">HklInterval</span></a> *self</code></em>,
-                                                         <em class="parameter"><code>const <a class="link" href="hkl-hkl-interval-private.html#HklInterval" title="struct HklInterval"><span class="type">HklInterval</span></a> *interval</code></em>);</pre>
-<p>
-multiply two <a class="link" href="hkl-hkl-interval-private.html#HklInterval" title="struct HklInterval"><span class="type">HklInterval</span></a>
-</p>
+<a name="HklInterval"></a><h3>struct HklInterval</h3>
+<pre class="programlisting">struct HklInterval {
+	double min;
+	double max;
+};
+</pre>
 </div>
 </div>
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/Documentation/api/html/hkl-hkl-lattice-private.html b/Documentation/api/html/hkl-hkl-lattice-private.html
index 297ba0c..faca801 100644
--- a/Documentation/api/html/hkl-hkl-lattice-private.html
+++ b/Documentation/api/html/hkl-hkl-lattice-private.html
@@ -2,30 +2,26 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>hkl-lattice-private</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<title>hkl Reference Manual: hkl-lattice-private</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="hkl Reference Manual">
 <link rel="up" href="ch01.html" title="[Insert title here]">
 <link rel="prev" href="hkl-hkl-interval-private.html" title="hkl-interval-private">
 <link rel="next" href="hkl-hkl-macros-private.html" title="hkl-macros-private">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
-<tr valign="middle">
-<td><a accesskey="p" href="hkl-hkl-interval-private.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">hkl Reference Manual</th>
-<td><a accesskey="n" href="hkl-hkl-macros-private.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
-</tr>
-<tr><td colspan="5" class="shortcuts">
-<a href="#hkl-hkl-lattice-private.synopsis" class="shortcut">Top</a>
-                   | 
-                  <a href="#hkl-hkl-lattice-private.description" class="shortcut">Description</a>
-</td></tr>
-</table>
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts">
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+                  <a href="#hkl-hkl-lattice-private.description" class="shortcut">Description</a></span>
+</td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="p" href="hkl-hkl-interval-private.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="hkl-hkl-macros-private.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
 <div class="refentry">
 <a name="hkl-hkl-lattice-private"></a><div class="titlepage"></div>
 <div class="refnamediv"><table width="100%"><tr>
@@ -33,33 +29,132 @@
 <h2><span class="refentrytitle"><a name="hkl-hkl-lattice-private.top_of_page"></a>hkl-lattice-private</span></h2>
 <p>hkl-lattice-private</p>
 </td>
-<td valign="top" align="right"></td>
+<td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
-<div class="refsynopsisdiv">
-<a name="hkl-hkl-lattice-private.synopsis"></a><h2>Synopsis</h2>
-<pre class="synopsis">#define             <a class="link" href="hkl-hkl-lattice-private.html#HKL-LATTICE-ERROR:CAPS" title="HKL_LATTICE_ERROR">HKL_LATTICE_ERROR</a>
-                    <a class="link" href="hkl-hkl.html#HklLattice" title="HklLattice">HklLattice</a>;
-enum                <a class="link" href="hkl-hkl-lattice-private.html#HklLatticeError" title="enum HklLatticeError">HklLatticeError</a>;
-<span class="returnvalue">return</span>              <a class="link" href="hkl-hkl-geometry-private.html#g-quark-from-static-string" title="g_quark_from_static_string ()">g_quark_from_static_string</a>          ();
-<span class="returnvalue">void</span>                <a class="link" href="hkl-hkl-lattice-private.html#hkl-lattice-fprintf" title="hkl_lattice_fprintf ()">hkl_lattice_fprintf</a>                 (<em class="parameter"><code><span class="type">FILE</span> *f</code></em>,
-                                                         <em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklLattice" title="HklLattice"><span class="type">HklLattice</span></a> *self</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="hkl-hkl-lattice-private.html#hkl-lattice-lattice-set" title="hkl_lattice_lattice_set ()">hkl_lattice_lattice_set</a>             (<em class="parameter"><code><a class="link" href="hkl-hkl.html#HklLattice" title="HklLattice"><span class="type">HklLattice</span></a> *self</code></em>,
-                                                         <em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklLattice" title="HklLattice"><span class="type">HklLattice</span></a> *lattice</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="hkl-hkl-lattice-private.html#hkl-lattice-randomize" title="hkl_lattice_randomize ()">hkl_lattice_randomize</a>               (<em class="parameter"><code><a class="link" href="hkl-hkl.html#HklLattice" title="HklLattice"><span class="type">HklLattice</span></a> *self</code></em>);
-</pre>
+<div class="refsect1">
+<a name="hkl-hkl-lattice-private.functions"></a><h2>Functions</h2>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="functions_return">
+<col class="functions_name">
+</colgroup>
+<tbody>
+<tr>
+<td class="function_type">
+<span class="returnvalue">return</span>
+</td>
+<td class="function_name">
+<a class="link" href="hkl-hkl-geometry-private.html#g-quark-from-static-string" title="g_quark_from_static_string ()">g_quark_from_static_string</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="hkl-hkl-lattice-private.html#hkl-lattice-lattice-set" title="hkl_lattice_lattice_set ()">hkl_lattice_lattice_set</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="hkl-hkl-lattice-private.html#hkl-lattice-randomize" title="hkl_lattice_randomize ()">hkl_lattice_randomize</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="hkl-hkl-lattice-private.html#hkl-lattice-fprintf" title="hkl_lattice_fprintf ()">hkl_lattice_fprintf</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="hkl-hkl-lattice-private.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="name">
+<col class="description">
+</colgroup>
+<tbody>
+<tr>
+<td class="datatype_keyword"> </td>
+<td class="function_name"><a class="link" href="hkl-hkl.html#HklLattice" title="HklLattice">HklLattice</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="hkl-hkl-lattice-private.html#HKL-LATTICE-ERROR:CAPS" title="HKL_LATTICE_ERROR">HKL_LATTICE_ERROR</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword">enum</td>
+<td class="function_name"><a class="link" href="hkl-hkl-lattice-private.html#HklLatticeError" title="enum HklLatticeError">HklLatticeError</a></td>
+</tr>
+</tbody>
+</table></div>
 </div>
 <div class="refsect1">
 <a name="hkl-hkl-lattice-private.description"></a><h2>Description</h2>
 </div>
 <div class="refsect1">
-<a name="hkl-hkl-lattice-private.details"></a><h2>Details</h2>
+<a name="hkl-hkl-lattice-private.functions_details"></a><h2>Functions</h2>
 <div class="refsect2">
-<a name="HKL-LATTICE-ERROR:CAPS"></a><h3>HKL_LATTICE_ERROR</h3>
-<pre class="programlisting">#define HKL_LATTICE_ERROR hkl_lattice_error_quark ()
-</pre>
+<a name="g-quark-from-static-string"></a><h3>g_quark_from_static_string ()</h3>
+<pre class="programlisting"><span class="returnvalue">return</span>
+g_quark_from_static_string ();</pre>
 </div>
 <hr>
 <div class="refsect2">
+<a name="hkl-lattice-lattice-set"></a><h3>hkl_lattice_lattice_set ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+hkl_lattice_lattice_set (<em class="parameter"><code><a class="link" href="hkl-hkl.html#HklLattice" title="HklLattice"><span class="type">HklLattice</span></a> *self</code></em>,
+                         <em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklLattice" title="HklLattice"><span class="type">HklLattice</span></a> *lattice</code></em>);</pre>
+<div class="refsect3">
+<a name="id-1.2.15.6.3.4"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>self</p></td>
+<td class="parameter_description"><p>the this ptr</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>lattice</p></td>
+<td class="parameter_description"><p>the lattice to set from.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="hkl-lattice-randomize"></a><h3>hkl_lattice_randomize ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+hkl_lattice_randomize (<em class="parameter"><code><a class="link" href="hkl-hkl.html#HklLattice" title="HklLattice"><span class="type">HklLattice</span></a> *self</code></em>);</pre>
+<p>randomize the lattice</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="hkl-lattice-fprintf"></a><h3>hkl_lattice_fprintf ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+hkl_lattice_fprintf (<em class="parameter"><code><span class="type">FILE</span> *f</code></em>,
+                     <em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklLattice" title="HklLattice"><span class="type">HklLattice</span></a> *self</code></em>);</pre>
+<p>print into a file the lattice.</p>
+</div>
+</div>
+<div class="refsect1">
+<a name="hkl-hkl-lattice-private.other_details"></a><h2>Types and Values</h2>
+<div class="refsect2">
 <a name="HklLattice"></a><h3>HklLattice</h3>
 <pre class="programlisting">typedef struct {
 	HklParameter *a;
@@ -74,57 +169,33 @@ enum                <a class="link" href="hkl-hkl-lattice-private.html#HklLattic
 </div>
 <hr>
 <div class="refsect2">
-<a name="HklLatticeError"></a><h3>enum HklLatticeError</h3>
-<pre class="programlisting">typedef enum {
-	HKL_LATTICE_CHECK_LATTICE, /* the lattice parameters are not valid */
-} HklLatticeError;
+<a name="HKL-LATTICE-ERROR:CAPS"></a><h3>HKL_LATTICE_ERROR</h3>
+<pre class="programlisting">#define HKL_LATTICE_ERROR hkl_lattice_error_quark ()
 </pre>
 </div>
 <hr>
 <div class="refsect2">
-<a name="g-quark-from-static-string"></a><h3>g_quark_from_static_string ()</h3>
-<pre class="programlisting"><span class="returnvalue">return</span>              g_quark_from_static_string          ();</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="hkl-lattice-fprintf"></a><h3>hkl_lattice_fprintf ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                hkl_lattice_fprintf                 (<em class="parameter"><code><span class="type">FILE</span> *f</code></em>,
-                                                         <em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklLattice" title="HklLattice"><span class="type">HklLattice</span></a> *self</code></em>);</pre>
-<p>
-print into a file the lattice.
-</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="hkl-lattice-lattice-set"></a><h3>hkl_lattice_lattice_set ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                hkl_lattice_lattice_set             (<em class="parameter"><code><a class="link" href="hkl-hkl.html#HklLattice" title="HklLattice"><span class="type">HklLattice</span></a> *self</code></em>,
-                                                         <em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklLattice" title="HklLattice"><span class="type">HklLattice</span></a> *lattice</code></em>);</pre>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
-<td>the this ptr</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>lattice</code></em> :</span></p></td>
-<td>the lattice to set from.</td>
-</tr>
-</tbody>
+<a name="HklLatticeError"></a><h3>enum HklLatticeError</h3>
+<div class="refsect3">
+<a name="id-1.2.15.7.4.3"></a><h4>Members</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="300px" class="enum_members_name">
+<col class="enum_members_description">
+<col width="200px" class="enum_members_annotations">
+</colgroup>
+<tbody><tr>
+<td class="enum_member_name"><p><a name="HKL-LATTICE-CHECK-LATTICE:CAPS"></a>HKL_LATTICE_CHECK_LATTICE</p></td>
+<td> </td>
+<td> </td>
+</tr></tbody>
 </table></div>
 </div>
-<hr>
-<div class="refsect2">
-<a name="hkl-lattice-randomize"></a><h3>hkl_lattice_randomize ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                hkl_lattice_randomize               (<em class="parameter"><code><a class="link" href="hkl-hkl.html#HklLattice" title="HklLattice"><span class="type">HklLattice</span></a> *self</code></em>);</pre>
-<p>
-randomize the lattice
-</p>
 </div>
 </div>
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/Documentation/api/html/hkl-hkl-macros-private.html b/Documentation/api/html/hkl-hkl-macros-private.html
index 81af59e..b1c020d 100644
--- a/Documentation/api/html/hkl-hkl-macros-private.html
+++ b/Documentation/api/html/hkl-hkl-macros-private.html
@@ -2,30 +2,26 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>hkl-macros-private</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<title>hkl Reference Manual: hkl-macros-private</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="hkl Reference Manual">
 <link rel="up" href="ch01.html" title="[Insert title here]">
 <link rel="prev" href="hkl-hkl-lattice-private.html" title="hkl-lattice-private">
 <link rel="next" href="hkl-hkl-matrix-private.html" title="hkl-matrix-private">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
-<tr valign="middle">
-<td><a accesskey="p" href="hkl-hkl-lattice-private.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">hkl Reference Manual</th>
-<td><a accesskey="n" href="hkl-hkl-matrix-private.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
-</tr>
-<tr><td colspan="5" class="shortcuts">
-<a href="#hkl-hkl-macros-private.synopsis" class="shortcut">Top</a>
-                   | 
-                  <a href="#hkl-hkl-macros-private.description" class="shortcut">Description</a>
-</td></tr>
-</table>
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts">
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+                  <a href="#hkl-hkl-macros-private.description" class="shortcut">Description</a></span>
+</td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="p" href="hkl-hkl-lattice-private.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="hkl-hkl-matrix-private.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
 <div class="refentry">
 <a name="hkl-hkl-macros-private"></a><div class="titlepage"></div>
 <div class="refnamediv"><table width="100%"><tr>
@@ -33,39 +29,102 @@
 <h2><span class="refentrytitle"><a name="hkl-hkl-macros-private.top_of_page"></a>hkl-macros-private</span></h2>
 <p>hkl-macros-private</p>
 </td>
-<td valign="top" align="right"></td>
+<td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
-<div class="refsynopsisdiv">
-<a name="hkl-hkl-macros-private.synopsis"></a><h2>Synopsis</h2>
-<pre class="synopsis">#define             <a class="link" href="hkl-hkl-macros-private.html#ALLOC-GROW:CAPS" title="ALLOC_GROW()">ALLOC_GROW</a>                          (x,
-                                                         nr,
-                                                         alloc)
-#define             <a class="link" href="hkl-hkl-macros-private.html#DARRAY:CAPS" title="DARRAY()">DARRAY</a>                              (_items)
-#define             <a class="link" href="hkl-hkl-macros-private.html#G-GNUC-PRINTF:CAPS" title="G_GNUC_PRINTF()">G_GNUC_PRINTF</a>                       (format_idx,
-                                                         arg_idx)
-#define             <a class="link" href="hkl-hkl-macros-private.html#HKL-EULERIAN-KAPPA-SOLUTION:CAPS" title="HKL_EULERIAN_KAPPA_SOLUTION">HKL_EULERIAN_KAPPA_SOLUTION</a>
-#define             <a class="link" href="hkl-hkl-macros-private.html#HKL-MALLOC:CAPS" title="HKL_MALLOC()">HKL_MALLOC</a>                          (type)
-#define             <a class="link" href="hkl-compiler.html#NORETURN:CAPS" title="NORETURN">NORETURN</a>
-#define             <a class="link" href="hkl-hkl-macros-private.html#alloc-nr" title="alloc_nr()">alloc_nr</a>                            (x)
-#define             <a class="link" href="hkl-hkl-macros-private.html#hkl-assert" title="hkl_assert()">hkl_assert</a>                          (x)
-#define             <a class="link" href="hkl-hkl-macros-private.html#hkl-error" title="hkl_error()">hkl_error</a>                           (expr)
-<span class="returnvalue">void</span>                <a class="link" href="hkl-hkl-macros-private.html#hkl-printbt" title="hkl_printbt ()">hkl_printbt</a>                         (<em class="parameter"><code><span class="type">void</span></code></em>);
-</pre>
+<div class="refsect1">
+<a name="hkl-hkl-macros-private.functions"></a><h2>Functions</h2>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="functions_return">
+<col class="functions_name">
+</colgroup>
+<tbody>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name">
+<a class="link" href="hkl-hkl-macros-private.html#hkl-assert" title="hkl_assert()">hkl_assert</a><span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name">
+<a class="link" href="hkl-hkl-macros-private.html#hkl-error" title="hkl_error()">hkl_error</a><span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name">
+<a class="link" href="hkl-hkl-macros-private.html#G-GNUC-PRINTF:CAPS" title="G_GNUC_PRINTF()">G_GNUC_PRINTF</a><span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name">
+<a class="link" href="hkl-hkl-macros-private.html#alloc-nr" title="alloc_nr()">alloc_nr</a><span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name">
+<a class="link" href="hkl-hkl-macros-private.html#ALLOC-GROW:CAPS" title="ALLOC_GROW()">ALLOC_GROW</a><span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name">
+<a class="link" href="hkl-hkl-macros-private.html#DARRAY:CAPS" title="DARRAY()">DARRAY</a><span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="hkl-hkl-macros-private.html#hkl-printbt" title="hkl_printbt ()">hkl_printbt</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name">
+<a class="link" href="hkl-hkl-macros-private.html#HKL-MALLOC:CAPS" title="HKL_MALLOC()">HKL_MALLOC</a><span class="c_punctuation">()</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="hkl-hkl-macros-private.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="name">
+<col class="description">
+</colgroup>
+<tbody>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="hkl-hkl-macros-private.html#HKL-EULERIAN-KAPPA-SOLUTION:CAPS" title="HKL_EULERIAN_KAPPA_SOLUTION">HKL_EULERIAN_KAPPA_SOLUTION</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="hkl-compiler.html#NORETURN:CAPS" title="NORETURN">NORETURN</a></td>
+</tr>
+</tbody>
+</table></div>
 </div>
 <div class="refsect1">
 <a name="hkl-hkl-macros-private.description"></a><h2>Description</h2>
 </div>
 <div class="refsect1">
-<a name="hkl-hkl-macros-private.details"></a><h2>Details</h2>
+<a name="hkl-hkl-macros-private.functions_details"></a><h2>Functions</h2>
 <div class="refsect2">
-<a name="ALLOC-GROW:CAPS"></a><h3>ALLOC_GROW()</h3>
-<pre class="programlisting">#define             ALLOC_GROW(x, nr, alloc)</pre>
+<a name="hkl-assert"></a><h3>hkl_assert()</h3>
+<pre class="programlisting"># define hkl_assert(x) do{ if (!(x)) {hkl_printbt(); assert(x); } } while(0)
+</pre>
 </div>
 <hr>
 <div class="refsect2">
-<a name="DARRAY:CAPS"></a><h3>DARRAY()</h3>
-<pre class="programlisting">#define DARRAY(_items) {.item=_items, .size=ARRAY_SIZE(_items), .alloc=ARRAY_SIZE(_items)}
-</pre>
+<a name="hkl-error"></a><h3>hkl_error()</h3>
+<pre class="programlisting">#define             hkl_error(expr)</pre>
 </div>
 <hr>
 <div class="refsect2">
@@ -74,47 +133,50 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="HKL-EULERIAN-KAPPA-SOLUTION:CAPS"></a><h3>HKL_EULERIAN_KAPPA_SOLUTION</h3>
-<pre class="programlisting">#define HKL_EULERIAN_KAPPA_SOLUTION 1
+<a name="alloc-nr"></a><h3>alloc_nr()</h3>
+<pre class="programlisting">#define alloc_nr(x) (((x)+16)*3/2)
 </pre>
 </div>
 <hr>
 <div class="refsect2">
-<a name="HKL-MALLOC:CAPS"></a><h3>HKL_MALLOC()</h3>
-<pre class="programlisting">#define HKL_MALLOC(type) (type *)_hkl_malloc(sizeof(type), "Can not allocate memory for a " #type)
-</pre>
+<a name="ALLOC-GROW:CAPS"></a><h3>ALLOC_GROW()</h3>
+<pre class="programlisting">#define             ALLOC_GROW(x, nr, alloc)</pre>
 </div>
 <hr>
 <div class="refsect2">
-<a name="NORETURN:CAPS"></a><h3>NORETURN</h3>
-<pre class="programlisting">#define             NORETURN</pre>
+<a name="DARRAY:CAPS"></a><h3>DARRAY()</h3>
+<pre class="programlisting">#define DARRAY(_items) {.item=_items, .size=ARRAY_SIZE(_items), .alloc=ARRAY_SIZE(_items)}
+</pre>
 </div>
 <hr>
 <div class="refsect2">
-<a name="alloc-nr"></a><h3>alloc_nr()</h3>
-<pre class="programlisting">#define alloc_nr(x) (((x)+16)*3/2)
-</pre>
+<a name="hkl-printbt"></a><h3>hkl_printbt ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+hkl_printbt (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
 </div>
 <hr>
 <div class="refsect2">
-<a name="hkl-assert"></a><h3>hkl_assert()</h3>
-<pre class="programlisting"># define hkl_assert(x) do{ if (!(x)) {hkl_printbt(); assert(x); } } while(0)
+<a name="HKL-MALLOC:CAPS"></a><h3>HKL_MALLOC()</h3>
+<pre class="programlisting">#define HKL_MALLOC(type) (type *)_hkl_malloc(sizeof(type), "Can not allocate memory for a " #type)
 </pre>
 </div>
-<hr>
+</div>
+<div class="refsect1">
+<a name="hkl-hkl-macros-private.other_details"></a><h2>Types and Values</h2>
 <div class="refsect2">
-<a name="hkl-error"></a><h3>hkl_error()</h3>
-<pre class="programlisting">#define             hkl_error(expr)</pre>
+<a name="HKL-EULERIAN-KAPPA-SOLUTION:CAPS"></a><h3>HKL_EULERIAN_KAPPA_SOLUTION</h3>
+<pre class="programlisting">#define HKL_EULERIAN_KAPPA_SOLUTION 1
+</pre>
 </div>
 <hr>
 <div class="refsect2">
-<a name="hkl-printbt"></a><h3>hkl_printbt ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                hkl_printbt                         (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
+<a name="NORETURN:CAPS"></a><h3>NORETURN</h3>
+<pre class="programlisting">#define             NORETURN</pre>
 </div>
 </div>
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/Documentation/api/html/hkl-hkl-matrix-private.html b/Documentation/api/html/hkl-hkl-matrix-private.html
index f30fdd2..7cf0075 100644
--- a/Documentation/api/html/hkl-hkl-matrix-private.html
+++ b/Documentation/api/html/hkl-hkl-matrix-private.html
@@ -2,30 +2,26 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>hkl-matrix-private</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<title>hkl Reference Manual: hkl-matrix-private</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="hkl Reference Manual">
 <link rel="up" href="ch01.html" title="[Insert title here]">
 <link rel="prev" href="hkl-hkl-macros-private.html" title="hkl-macros-private">
 <link rel="next" href="hkl-hkl-parameter-private.html" title="hkl-parameter-private">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
-<tr valign="middle">
-<td><a accesskey="p" href="hkl-hkl-macros-private.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">hkl Reference Manual</th>
-<td><a accesskey="n" href="hkl-hkl-parameter-private.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
-</tr>
-<tr><td colspan="5" class="shortcuts">
-<a href="#hkl-hkl-matrix-private.synopsis" class="shortcut">Top</a>
-                   | 
-                  <a href="#hkl-hkl-matrix-private.description" class="shortcut">Description</a>
-</td></tr>
-</table>
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts">
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+                  <a href="#hkl-hkl-matrix-private.description" class="shortcut">Description</a></span>
+</td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="p" href="hkl-hkl-macros-private.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="hkl-hkl-parameter-private.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
 <div class="refentry">
 <a name="hkl-hkl-matrix-private"></a><div class="titlepage"></div>
 <div class="refnamediv"><table width="100%"><tr>
@@ -33,308 +29,479 @@
 <h2><span class="refentrytitle"><a name="hkl-hkl-matrix-private.top_of_page"></a>hkl-matrix-private</span></h2>
 <p>hkl-matrix-private</p>
 </td>
-<td valign="top" align="right"></td>
+<td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
-<div class="refsynopsisdiv">
-<a name="hkl-hkl-matrix-private.synopsis"></a><h2>Synopsis</h2>
-<pre class="synopsis">                    <a class="link" href="hkl-hkl.html#HklMatrix" title="HklMatrix">HklMatrix</a>;
-<span class="returnvalue">double</span>              <a class="link" href="hkl-hkl-matrix-private.html#hkl-matrix-det" title="hkl_matrix_det ()">hkl_matrix_det</a>                      (<em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklMatrix" title="HklMatrix"><span class="type">HklMatrix</span></a> *self</code></em>);
-<a class="link" href="hkl-hkl.html#HklMatrix" title="HklMatrix"><span class="returnvalue">HklMatrix</span></a> *         <a class="link" href="hkl-hkl-matrix-private.html#hkl-matrix-dup" title="hkl_matrix_dup ()">hkl_matrix_dup</a>                      (<em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklMatrix" title="HklMatrix"><span class="type">HklMatrix</span></a> *self</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="hkl-hkl-matrix-private.html#hkl-matrix-fprintf" title="hkl_matrix_fprintf ()">hkl_matrix_fprintf</a>                  (<em class="parameter"><code><span class="type">FILE</span> *file</code></em>,
-                                                         <em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklMatrix" title="HklMatrix"><span class="type">HklMatrix</span></a> *self</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="hkl-hkl-matrix-private.html#hkl-matrix-init-from-euler" title="hkl_matrix_init_from_euler ()">hkl_matrix_init_from_euler</a>          (<em class="parameter"><code><a class="link" href="hkl-hkl.html#HklMatrix" title="HklMatrix"><span class="type">HklMatrix</span></a> *self</code></em>,
-                                                         <em class="parameter"><code><span class="type">double</span> euler_x</code></em>,
-                                                         <em class="parameter"><code><span class="type">double</span> euler_y</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="hkl-hkl-matrix-private.html#hkl-matrix-init-from-two-vector" title="hkl_matrix_init_from_two_vector ()">hkl_matrix_init_from_two_vector</a>     (<em class="parameter"><code><a class="link" href="hkl-hkl.html#HklMatrix" title="HklMatrix"><span class="type">HklMatrix</span></a> *self</code></em>,
-                                                         <em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> *v1</code></em>,
-                                                         <em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> *v2</code></em>);
-<span class="returnvalue">int</span>                 <a class="link" href="hkl-hkl-matrix-private.html#hkl-matrix-is-null" title="hkl_matrix_is_null ()">hkl_matrix_is_null</a>                  (<em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklMatrix" title="HklMatrix"><span class="type">HklMatrix</span></a> *self</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="hkl-hkl-matrix-private.html#hkl-matrix-matrix-set" title="hkl_matrix_matrix_set ()">hkl_matrix_matrix_set</a>               (<em class="parameter"><code><a class="link" href="hkl-hkl.html#HklMatrix" title="HklMatrix"><span class="type">HklMatrix</span></a> *self</code></em>);
-<span class="returnvalue">int</span>                 <a class="link" href="hkl-hkl-matrix-private.html#hkl-matrix-solve" title="hkl_matrix_solve ()">hkl_matrix_solve</a>                    (<em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklMatrix" title="HklMatrix"><span class="type">HklMatrix</span></a> *self</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> *x</code></em>,
-                                                         <em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> *b</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="hkl-hkl-matrix-private.html#hkl-matrix-times-vector" title="hkl_matrix_times_vector ()">hkl_matrix_times_vector</a>             (<em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklMatrix" title="HklMatrix"><span class="type">HklMatrix</span></a> *self</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> *v</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="hkl-hkl-matrix-private.html#hkl-matrix-to-euler" title="hkl_matrix_to_euler ()">hkl_matrix_to_euler</a>                 (<em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklMatrix" title="HklMatrix"><span class="type">HklMatrix</span></a> *self</code></em>,
-                                                         <em class="parameter"><code><span class="type">double</span> *euler_x</code></em>,
-                                                         <em class="parameter"><code><span class="type">double</span> *euler_y</code></em>,
-                                                         <em class="parameter"><code><span class="type">double</span> *euler_z</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="hkl-hkl-matrix-private.html#hkl-matrix-transpose" title="hkl_matrix_transpose ()">hkl_matrix_transpose</a>                (<em class="parameter"><code><a class="link" href="hkl-hkl.html#HklMatrix" title="HklMatrix"><span class="type">HklMatrix</span></a> *self</code></em>);
-</pre>
-</div>
 <div class="refsect1">
-<a name="hkl-hkl-matrix-private.description"></a><h2>Description</h2>
-</div>
-<div class="refsect1">
-<a name="hkl-hkl-matrix-private.details"></a><h2>Details</h2>
-<div class="refsect2">
-<a name="HklMatrix"></a><h3>HklMatrix</h3>
-<pre class="programlisting">typedef struct {
-	double data[3][3];
-} HklMatrix;
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="hkl-matrix-det"></a><h3>hkl_matrix_det ()</h3>
-<pre class="programlisting"><span class="returnvalue">double</span>              hkl_matrix_det                      (<em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklMatrix" title="HklMatrix"><span class="type">HklMatrix</span></a> *self</code></em>);</pre>
-<p>
-compute the determinant of an <a class="link" href="hkl-hkl.html#HklMatrix" title="HklMatrix"><span class="type">HklMatrix</span></a>
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="hkl-hkl-matrix-private.functions"></a><h2>Functions</h2>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="functions_return">
+<col class="functions_name">
+</colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
-<td>the <a class="link" href="hkl-hkl.html#HklMatrix" title="HklMatrix"><span class="type">HklMatrix</span></a> use to compute the determinant</td>
+<td class="function_type">
+<a class="link" href="hkl-hkl.html#HklMatrix" title="HklMatrix"><span class="returnvalue">HklMatrix</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="hkl-hkl-matrix-private.html#hkl-matrix-dup" title="hkl_matrix_dup ()">hkl_matrix_dup</a> <span class="c_punctuation">()</span>
+</td>
 </tr>
 <tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>the determinant of the self <a class="link" href="hkl-hkl.html#HklMatrix" title="HklMatrix"><span class="type">HklMatrix</span></a>
-Todo: test</td>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="hkl-hkl-matrix-private.html#hkl-matrix-init-from-euler" title="hkl_matrix_init_from_euler ()">hkl_matrix_init_from_euler</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="hkl-hkl-matrix-private.html#hkl-matrix-matrix-set" title="hkl_matrix_matrix_set ()">hkl_matrix_matrix_set</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="hkl-hkl-matrix-private.html#hkl-matrix-init-from-two-vector" title="hkl_matrix_init_from_two_vector ()">hkl_matrix_init_from_two_vector</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="hkl-hkl-matrix-private.html#hkl-matrix-fprintf" title="hkl_matrix_fprintf ()">hkl_matrix_fprintf</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="hkl-hkl-matrix-private.html#hkl-matrix-to-euler" title="hkl_matrix_to_euler ()">hkl_matrix_to_euler</a> <span class="c_punctuation">()</span>
+</td>
 </tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="hkl-matrix-dup"></a><h3>hkl_matrix_dup ()</h3>
-<pre class="programlisting"><a class="link" href="hkl-hkl.html#HklMatrix" title="HklMatrix"><span class="returnvalue">HklMatrix</span></a> *         hkl_matrix_dup                      (<em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklMatrix" title="HklMatrix"><span class="type">HklMatrix</span></a> *self</code></em>);</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="hkl-matrix-fprintf"></a><h3>hkl_matrix_fprintf ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                hkl_matrix_fprintf                  (<em class="parameter"><code><span class="type">FILE</span> *file</code></em>,
-                                                         <em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklMatrix" title="HklMatrix"><span class="type">HklMatrix</span></a> *self</code></em>);</pre>
-<p>
-printf an <a class="link" href="hkl-hkl.html#HklMatrix" title="HklMatrix"><span class="type">HklMatrix</span></a> into a FILE stream.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>file</code></em> :</span></p></td>
-<td>the FILE stream</td>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="hkl-hkl-matrix-private.html#hkl-matrix-times-vector" title="hkl_matrix_times_vector ()">hkl_matrix_times_vector</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="hkl-hkl-matrix-private.html#hkl-matrix-transpose" title="hkl_matrix_transpose ()">hkl_matrix_transpose</a> <span class="c_punctuation">()</span>
+</td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
-<td>the <a class="link" href="hkl-hkl.html#HklMatrix" title="HklMatrix"><span class="type">HklMatrix</span></a> to print into the file stream</td>
+<td class="function_type">
+<span class="returnvalue">double</span>
+</td>
+<td class="function_name">
+<a class="link" href="hkl-hkl-matrix-private.html#hkl-matrix-det" title="hkl_matrix_det ()">hkl_matrix_det</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">int</span>
+</td>
+<td class="function_name">
+<a class="link" href="hkl-hkl-matrix-private.html#hkl-matrix-solve" title="hkl_matrix_solve ()">hkl_matrix_solve</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">int</span>
+</td>
+<td class="function_name">
+<a class="link" href="hkl-hkl-matrix-private.html#hkl-matrix-is-null" title="hkl_matrix_is_null ()">hkl_matrix_is_null</a> <span class="c_punctuation">()</span>
+</td>
 </tr>
 </tbody>
 </table></div>
 </div>
+<div class="refsect1">
+<a name="hkl-hkl-matrix-private.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="name">
+<col class="description">
+</colgroup>
+<tbody><tr>
+<td class="datatype_keyword"> </td>
+<td class="function_name"><a class="link" href="hkl-hkl.html#HklMatrix" title="HklMatrix">HklMatrix</a></td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="hkl-hkl-matrix-private.description"></a><h2>Description</h2>
+</div>
+<div class="refsect1">
+<a name="hkl-hkl-matrix-private.functions_details"></a><h2>Functions</h2>
+<div class="refsect2">
+<a name="hkl-matrix-dup"></a><h3>hkl_matrix_dup ()</h3>
+<pre class="programlisting"><a class="link" href="hkl-hkl.html#HklMatrix" title="HklMatrix"><span class="returnvalue">HklMatrix</span></a> *
+hkl_matrix_dup (<em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklMatrix" title="HklMatrix"><span class="type">HklMatrix</span></a> *self</code></em>);</pre>
+<div class="refsect3">
+<a name="id-1.2.17.6.2.4"></a><h4>Returns</h4>
+<p></p>
+</div>
+</div>
 <hr>
 <div class="refsect2">
-<a name="hkl-matrix-init-from-euler"></a><h3>hkl_matrix_init_from_euler ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                hkl_matrix_init_from_euler          (<em class="parameter"><code><a class="link" href="hkl-hkl.html#HklMatrix" title="HklMatrix"><span class="type">HklMatrix</span></a> *self</code></em>,
-                                                         <em class="parameter"><code><span class="type">double</span> euler_x</code></em>,
-                                                         <em class="parameter"><code><span class="type">double</span> euler_y</code></em>);</pre>
-<p>
-Create a rotation <a class="link" href="hkl-hkl.html#HklMatrix" title="HklMatrix"><span class="type">HklMatrix</span></a> from three eulerians angles.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="hkl-matrix-init-from-euler"></a><h3>hkl_matrix_init_from_euler ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+hkl_matrix_init_from_euler (<em class="parameter"><code><a class="link" href="hkl-hkl.html#HklMatrix" title="HklMatrix"><span class="type">HklMatrix</span></a> *self</code></em>,
+                            <em class="parameter"><code><span class="type">double</span> euler_x</code></em>,
+                            <em class="parameter"><code><span class="type">double</span> euler_y</code></em>);</pre>
+<p>Create a rotation <a class="link" href="hkl-hkl.html#HklMatrix" title="HklMatrix"><span class="type">HklMatrix</span></a> from three eulerians angles.</p>
+<div class="refsect3">
+<a name="id-1.2.17.6.3.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
-<td>the <a class="link" href="hkl-hkl.html#HklMatrix" title="HklMatrix"><span class="type">HklMatrix</span></a> to initialize</td>
+<td class="parameter_name"><p>self</p></td>
+<td class="parameter_description"><p>the <a class="link" href="hkl-hkl.html#HklMatrix" title="HklMatrix"><span class="type">HklMatrix</span></a> to initialize</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>euler_x</code></em> :</span></p></td>
-<td>the eulerian value along X</td>
+<td class="parameter_name"><p>euler_x</p></td>
+<td class="parameter_description"><p>the eulerian value along X</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>euler_y</code></em> :</span></p></td>
-<td>the eulerian value along Y</td>
+<td class="parameter_name"><p>euler_y</p></td>
+<td class="parameter_description"><p>the eulerian value along Y</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>euler_z</code></em> :</span></p></td>
-<td>the eulerian value along Z</td>
+<td class="parameter_name"><p>euler_z</p></td>
+<td class="parameter_description"><p>the eulerian value along Z</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
 </div>
+</div>
 <hr>
 <div class="refsect2">
-<a name="hkl-matrix-init-from-two-vector"></a><h3>hkl_matrix_init_from_two_vector ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                hkl_matrix_init_from_two_vector     (<em class="parameter"><code><a class="link" href="hkl-hkl.html#HklMatrix" title="HklMatrix"><span class="type">HklMatrix</span></a> *self</code></em>,
-                                                         <em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> *v1</code></em>,
-                                                         <em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> *v2</code></em>);</pre>
-<p>
-Create an <a class="link" href="hkl-hkl.html#HklMatrix" title="HklMatrix"><span class="type">HklMatrix</span></a> which represent a direct oriented base of the space
-the first row correspond to the |v1|, the second row |v2| and the last one
-is |v1 ^ v2|
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="hkl-matrix-matrix-set"></a><h3>hkl_matrix_matrix_set ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+hkl_matrix_matrix_set (<em class="parameter"><code><a class="link" href="hkl-hkl.html#HklMatrix" title="HklMatrix"><span class="type">HklMatrix</span></a> *self</code></em>);</pre>
+<p><em class="parameter"><code>todo</code></em>
+ test</p>
+<div class="refsect3">
+<a name="id-1.2.17.6.4.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
-<td>The <a class="link" href="hkl-hkl.html#HklMatrix" title="HklMatrix"><span class="type">HklMatrix</span></a> to initialize</td>
+<td class="parameter_name"><p>self</p></td>
+<td class="parameter_description"><p>the this ptr</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>v1</code></em> :</span></p></td>
-<td>the first <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>v2</code></em> :</span></p></td>
-<td>the second <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a>
-</td>
+<td class="parameter_name"><p>m</p></td>
+<td class="parameter_description"><p>the matrix to set</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
 </div>
+</div>
 <hr>
 <div class="refsect2">
-<a name="hkl-matrix-is-null"></a><h3>hkl_matrix_is_null ()</h3>
-<pre class="programlisting"><span class="returnvalue">int</span>                 hkl_matrix_is_null                  (<em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklMatrix" title="HklMatrix"><span class="type">HklMatrix</span></a> *self</code></em>);</pre>
-<p>
-is all <span class="type">hklMatrix</span> elementes bellow <a class="link" href="hkl-hkl.html#HKL-EPSILON:CAPS" title="HKL_EPSILON"><span class="type">HKL_EPSILON</span></a>
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="hkl-matrix-init-from-two-vector"></a><h3>hkl_matrix_init_from_two_vector ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+hkl_matrix_init_from_two_vector (<em class="parameter"><code><a class="link" href="hkl-hkl.html#HklMatrix" title="HklMatrix"><span class="type">HklMatrix</span></a> *self</code></em>,
+                                 <em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> *v1</code></em>,
+                                 <em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> *v2</code></em>);</pre>
+<p>Create an <a class="link" href="hkl-hkl.html#HklMatrix" title="HklMatrix"><span class="type">HklMatrix</span></a> which represent a direct oriented base of the space
+the first row correspond to the |v1|, the second row |v2| and the last one
+is |v1 ^ v2|</p>
+<div class="refsect3">
+<a name="id-1.2.17.6.5.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
-<td>the <a class="link" href="hkl-hkl.html#HklMatrix" title="HklMatrix"><span class="type">HklMatrix</span></a> to test</td>
+<td class="parameter_name"><p>self</p></td>
+<td class="parameter_description"><p>The <a class="link" href="hkl-hkl.html#HklMatrix" title="HklMatrix"><span class="type">HklMatrix</span></a> to initialize</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>v1</p></td>
+<td class="parameter_description"><p>the first <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>TRUE if the self <a class="link" href="hkl-hkl.html#HklMatrix" title="HklMatrix"><span class="type">HklMatrix</span></a> is null
-Todo: test</td>
+<td class="parameter_name"><p>v2</p></td>
+<td class="parameter_description"><p>the second <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
 </div>
+</div>
 <hr>
 <div class="refsect2">
-<a name="hkl-matrix-matrix-set"></a><h3>hkl_matrix_matrix_set ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                hkl_matrix_matrix_set               (<em class="parameter"><code><a class="link" href="hkl-hkl.html#HklMatrix" title="HklMatrix"><span class="type">HklMatrix</span></a> *self</code></em>);</pre>
-<p>
-<em class="parameter"><code>todo</code></em> test
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="hkl-matrix-fprintf"></a><h3>hkl_matrix_fprintf ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+hkl_matrix_fprintf (<em class="parameter"><code><span class="type">FILE</span> *file</code></em>,
+                    <em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklMatrix" title="HklMatrix"><span class="type">HklMatrix</span></a> *self</code></em>);</pre>
+<p>printf an <a class="link" href="hkl-hkl.html#HklMatrix" title="HklMatrix"><span class="type">HklMatrix</span></a> into a FILE stream.</p>
+<div class="refsect3">
+<a name="id-1.2.17.6.6.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
-<td>the this ptr</td>
+<td class="parameter_name"><p>file</p></td>
+<td class="parameter_description"><p>the FILE stream</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>m</code></em> :</span></p></td>
-<td>the matrix to set</td>
+<td class="parameter_name"><p>self</p></td>
+<td class="parameter_description"><p>the <a class="link" href="hkl-hkl.html#HklMatrix" title="HklMatrix"><span class="type">HklMatrix</span></a> to print into the file stream</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
 </div>
+</div>
 <hr>
 <div class="refsect2">
-<a name="hkl-matrix-solve"></a><h3>hkl_matrix_solve ()</h3>
-<pre class="programlisting"><span class="returnvalue">int</span>                 hkl_matrix_solve                    (<em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklMatrix" title="HklMatrix"><span class="type">HklMatrix</span></a> *self</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> *x</code></em>,
-                                                         <em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> *b</code></em>);</pre>
-<p>
-solve the system self . X = b
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="hkl-matrix-to-euler"></a><h3>hkl_matrix_to_euler ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+hkl_matrix_to_euler (<em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklMatrix" title="HklMatrix"><span class="type">HklMatrix</span></a> *self</code></em>,
+                     <em class="parameter"><code><span class="type">double</span> *euler_x</code></em>,
+                     <em class="parameter"><code><span class="type">double</span> *euler_y</code></em>,
+                     <em class="parameter"><code><span class="type">double</span> *euler_z</code></em>);</pre>
+<p>compute the three eulerians values for a given rotation <a class="link" href="hkl-hkl.html#HklMatrix" title="HklMatrix"><span class="type">HklMatrix</span></a></p>
+<div class="refsect3">
+<a name="id-1.2.17.6.7.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
-<td>The <a class="link" href="hkl-hkl.html#HklMatrix" title="HklMatrix"><span class="type">HklMatrix</span></a> of the system</td>
+<td class="parameter_name"><p>self</p></td>
+<td class="parameter_description"><p>the rotation <a class="link" href="hkl-hkl.html#HklMatrix" title="HklMatrix"><span class="type">HklMatrix</span></a> use to compute the eulerians angles</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>x</code></em> :</span></p></td>
-<td>the <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> to compute.</td>
+<td class="parameter_name"><p>euler_x</p></td>
+<td class="parameter_description"><p>the eulerian value along X</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>b</code></em> :</span></p></td>
-<td>the <span class="type">hklVector</span> of the system to solve.</td>
+<td class="parameter_name"><p>euler_y</p></td>
+<td class="parameter_description"><p>the eulerian value along Y</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>-1 if the système has no solution, 0 otherwise.
-Todo: test</td>
+<td class="parameter_name"><p>euler_z</p></td>
+<td class="parameter_description"><p>the eulerian value along Z</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
 </div>
+</div>
 <hr>
 <div class="refsect2">
-<a name="hkl-matrix-times-vector"></a><h3>hkl_matrix_times_vector ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                hkl_matrix_times_vector             (<em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklMatrix" title="HklMatrix"><span class="type">HklMatrix</span></a> *self</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> *v</code></em>);</pre>
-<p>
-multiply an <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> by an <a class="link" href="hkl-hkl.html#HklMatrix" title="HklMatrix"><span class="type">HklMatrix</span></a>
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="hkl-matrix-times-vector"></a><h3>hkl_matrix_times_vector ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+hkl_matrix_times_vector (<em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklMatrix" title="HklMatrix"><span class="type">HklMatrix</span></a> *self</code></em>,
+                         <em class="parameter"><code><a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> *v</code></em>);</pre>
+<p>multiply an <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> by an <a class="link" href="hkl-hkl.html#HklMatrix" title="HklMatrix"><span class="type">HklMatrix</span></a></p>
+<div class="refsect3">
+<a name="id-1.2.17.6.8.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
-<td>the <a class="link" href="hkl-hkl.html#HklMatrix" title="HklMatrix"><span class="type">HklMatrix</span></a> use to multiply the <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a>
-</td>
+<td class="parameter_name"><p>self</p></td>
+<td class="parameter_description"><p>the <a class="link" href="hkl-hkl.html#HklMatrix" title="HklMatrix"><span class="type">HklMatrix</span></a> use to multiply the <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>v</code></em> :</span></p></td>
-<td>the <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> multiply by the <a class="link" href="hkl-hkl.html#HklMatrix" title="HklMatrix"><span class="type">HklMatrix</span></a>
-</td>
+<td class="parameter_name"><p>v</p></td>
+<td class="parameter_description"><p>the <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> multiply by the <a class="link" href="hkl-hkl.html#HklMatrix" title="HklMatrix"><span class="type">HklMatrix</span></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
 </div>
+</div>
 <hr>
 <div class="refsect2">
-<a name="hkl-matrix-to-euler"></a><h3>hkl_matrix_to_euler ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                hkl_matrix_to_euler                 (<em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklMatrix" title="HklMatrix"><span class="type">HklMatrix</span></a> *self</code></em>,
-                                                         <em class="parameter"><code><span class="type">double</span> *euler_x</code></em>,
-                                                         <em class="parameter"><code><span class="type">double</span> *euler_y</code></em>,
-                                                         <em class="parameter"><code><span class="type">double</span> *euler_z</code></em>);</pre>
-<p>
-compute the three eulerians values for a given rotation <a class="link" href="hkl-hkl.html#HklMatrix" title="HklMatrix"><span class="type">HklMatrix</span></a>
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="hkl-matrix-transpose"></a><h3>hkl_matrix_transpose ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+hkl_matrix_transpose (<em class="parameter"><code><a class="link" href="hkl-hkl.html#HklMatrix" title="HklMatrix"><span class="type">HklMatrix</span></a> *self</code></em>);</pre>
+<p>transpose an <a class="link" href="hkl-hkl.html#HklMatrix" title="HklMatrix"><span class="type">HklMatrix</span></a></p>
+<div class="refsect3">
+<a name="id-1.2.17.6.9.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>self</p></td>
+<td class="parameter_description"><p>the <a class="link" href="hkl-hkl.html#HklMatrix" title="HklMatrix"><span class="type">HklMatrix</span></a> to transpose</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="hkl-matrix-det"></a><h3>hkl_matrix_det ()</h3>
+<pre class="programlisting"><span class="returnvalue">double</span>
+hkl_matrix_det (<em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklMatrix" title="HklMatrix"><span class="type">HklMatrix</span></a> *self</code></em>);</pre>
+<p>compute the determinant of an <a class="link" href="hkl-hkl.html#HklMatrix" title="HklMatrix"><span class="type">HklMatrix</span></a></p>
+<div class="refsect3">
+<a name="id-1.2.17.6.10.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>self</p></td>
+<td class="parameter_description"><p>the <a class="link" href="hkl-hkl.html#HklMatrix" title="HklMatrix"><span class="type">HklMatrix</span></a> use to compute the determinant</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="id-1.2.17.6.10.6"></a><h4>Returns</h4>
+<p> the determinant of the self <a class="link" href="hkl-hkl.html#HklMatrix" title="HklMatrix"><span class="type">HklMatrix</span></a>
+Todo: test</p>
+<p></p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="hkl-matrix-solve"></a><h3>hkl_matrix_solve ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+hkl_matrix_solve (<em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklMatrix" title="HklMatrix"><span class="type">HklMatrix</span></a> *self</code></em>,
+                  <em class="parameter"><code><a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> *x</code></em>,
+                  <em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> *b</code></em>);</pre>
+<p>solve the system self . X = b</p>
+<div class="refsect3">
+<a name="id-1.2.17.6.11.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
-<td>the rotation <a class="link" href="hkl-hkl.html#HklMatrix" title="HklMatrix"><span class="type">HklMatrix</span></a> use to compute the eulerians angles</td>
+<td class="parameter_name"><p>self</p></td>
+<td class="parameter_description"><p>The <a class="link" href="hkl-hkl.html#HklMatrix" title="HklMatrix"><span class="type">HklMatrix</span></a> of the system</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>euler_x</code></em> :</span></p></td>
-<td>the eulerian value along X</td>
+<td class="parameter_name"><p>x</p></td>
+<td class="parameter_description"><p>the <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> to compute.</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>euler_y</code></em> :</span></p></td>
-<td>the eulerian value along Y</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>euler_z</code></em> :</span></p></td>
-<td>the eulerian value along Z</td>
+<td class="parameter_name"><p>b</p></td>
+<td class="parameter_description"><p>the <span class="type">hklVector</span> of the system to solve.</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
 </div>
+<div class="refsect3">
+<a name="id-1.2.17.6.11.6"></a><h4>Returns</h4>
+<p> -1 if the système has no solution, 0 otherwise.
+Todo: test</p>
+<p></p>
+</div>
+</div>
 <hr>
 <div class="refsect2">
-<a name="hkl-matrix-transpose"></a><h3>hkl_matrix_transpose ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                hkl_matrix_transpose                (<em class="parameter"><code><a class="link" href="hkl-hkl.html#HklMatrix" title="HklMatrix"><span class="type">HklMatrix</span></a> *self</code></em>);</pre>
-<p>
-transpose an <a class="link" href="hkl-hkl.html#HklMatrix" title="HklMatrix"><span class="type">HklMatrix</span></a>
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="hkl-matrix-is-null"></a><h3>hkl_matrix_is_null ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+hkl_matrix_is_null (<em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklMatrix" title="HklMatrix"><span class="type">HklMatrix</span></a> *self</code></em>);</pre>
+<p>is all <span class="type">hklMatrix</span> elementes bellow <a class="link" href="hkl-hkl.html#HKL-EPSILON:CAPS" title="HKL_EPSILON"><span class="type">HKL_EPSILON</span></a></p>
+<div class="refsect3">
+<a name="id-1.2.17.6.12.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
 <tbody><tr>
-<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
-<td>the <a class="link" href="hkl-hkl.html#HklMatrix" title="HklMatrix"><span class="type">HklMatrix</span></a> to transpose</td>
+<td class="parameter_name"><p>self</p></td>
+<td class="parameter_description"><p>the <a class="link" href="hkl-hkl.html#HklMatrix" title="HklMatrix"><span class="type">HklMatrix</span></a> to test</p></td>
+<td class="parameter_annotations"> </td>
 </tr></tbody>
 </table></div>
 </div>
+<div class="refsect3">
+<a name="id-1.2.17.6.12.6"></a><h4>Returns</h4>
+<p> TRUE if the self <a class="link" href="hkl-hkl.html#HklMatrix" title="HklMatrix"><span class="type">HklMatrix</span></a> is null
+Todo: test</p>
+<p></p>
+</div>
+</div>
+</div>
+<div class="refsect1">
+<a name="hkl-hkl-matrix-private.other_details"></a><h2>Types and Values</h2>
+<div class="refsect2">
+<a name="HklMatrix"></a><h3>HklMatrix</h3>
+<pre class="programlisting">typedef struct {
+	double data[3][3];
+} HklMatrix;
+</pre>
+</div>
 </div>
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/Documentation/api/html/hkl-hkl-parameter-private.html b/Documentation/api/html/hkl-hkl-parameter-private.html
index 028d942..a29d155 100644
--- a/Documentation/api/html/hkl-hkl-parameter-private.html
+++ b/Documentation/api/html/hkl-hkl-parameter-private.html
@@ -2,30 +2,26 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>hkl-parameter-private</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<title>hkl Reference Manual: hkl-parameter-private</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="hkl Reference Manual">
 <link rel="up" href="ch01.html" title="[Insert title here]">
 <link rel="prev" href="hkl-hkl-matrix-private.html" title="hkl-matrix-private">
 <link rel="next" href="hkl-hkl-pseudoaxis-auto-private.html" title="hkl-pseudoaxis-auto-private">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
-<tr valign="middle">
-<td><a accesskey="p" href="hkl-hkl-matrix-private.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">hkl Reference Manual</th>
-<td><a accesskey="n" href="hkl-hkl-pseudoaxis-auto-private.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
-</tr>
-<tr><td colspan="5" class="shortcuts">
-<a href="#hkl-hkl-parameter-private.synopsis" class="shortcut">Top</a>
-                   | 
-                  <a href="#hkl-hkl-parameter-private.description" class="shortcut">Description</a>
-</td></tr>
-</table>
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts">
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+                  <a href="#hkl-hkl-parameter-private.description" class="shortcut">Description</a></span>
+</td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="p" href="hkl-hkl-matrix-private.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="hkl-hkl-pseudoaxis-auto-private.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
 <div class="refentry">
 <a name="hkl-hkl-parameter-private"></a><div class="titlepage"></div>
 <div class="refnamediv"><table width="100%"><tr>
@@ -33,73 +29,293 @@
 <h2><span class="refentrytitle"><a name="hkl-hkl-parameter-private.top_of_page"></a>hkl-parameter-private</span></h2>
 <p>hkl-parameter-private</p>
 </td>
-<td valign="top" align="right"></td>
+<td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
-<div class="refsynopsisdiv">
-<a name="hkl-hkl-parameter-private.synopsis"></a><h2>Synopsis</h2>
-<pre class="synopsis">#define             <a class="link" href="hkl-hkl-parameter-private.html#HKL-PARAMETER-DEFAULTS:CAPS" title="HKL_PARAMETER_DEFAULTS">HKL_PARAMETER_DEFAULTS</a>
-#define             <a class="link" href="hkl-hkl-parameter-private.html#HKL-PARAMETER-DEFAULTS-ANGLE:CAPS" title="HKL_PARAMETER_DEFAULTS_ANGLE">HKL_PARAMETER_DEFAULTS_ANGLE</a>
-#define             <a class="link" href="hkl-hkl-parameter-private.html#HKL-PARAMETER-ERROR:CAPS" title="HKL_PARAMETER_ERROR">HKL_PARAMETER_ERROR</a>
-#define             <a class="link" href="hkl-hkl-parameter-private.html#HKL-PARAMETER-OPERATIONS-DEFAULTS:CAPS" title="HKL_PARAMETER_OPERATIONS_DEFAULTS">HKL_PARAMETER_OPERATIONS_DEFAULTS</a>
-                    <a class="link" href="hkl-hkl.html#HklParameter" title="HklParameter">HklParameter</a>;
-enum                <a class="link" href="hkl-hkl-parameter-private.html#HklParameterError" title="enum HklParameterError">HklParameterError</a>;
-struct              <a class="link" href="hkl-hkl-parameter-private.html#HklParameterOperations" title="struct HklParameterOperations">HklParameterOperations</a>;
-double              <a class="link" href="hkl-hkl-parameter-private.html#alea" title="alea">alea</a>;
-typedef             <a class="link" href="hkl-hkl-parameter-private.html#darray-parameter" title="darray_parameter">darray_parameter</a>;
-HklParameter *      <a class="link" href="hkl-hkl-parameter-private.html#dup" title="dup">dup</a>;
-double              <a class="link" href="hkl-hkl-parameter-private.html#factor" title="factor">factor</a>;
-<span class="returnvalue">else</span>                <a class="link" href="hkl-hkl-parameter-private.html#fprintf" title="fprintf ()">fprintf</a>                             (<em class="parameter"><code><span class="type">f</span> Param1</code></em>);
-<span class="returnvalue">return</span>              <a class="link" href="hkl-hkl-geometry-private.html#g-quark-from-static-string" title="g_quark_from_static_string ()">g_quark_from_static_string</a>          ();
-<span class="returnvalue">void</span>                <a class="link" href="hkl-hkl-parameter-private.html#hkl-parameter-fprintf" title="hkl_parameter_fprintf ()">hkl_parameter_fprintf</a>               (<em class="parameter"><code><span class="type">FILE</span> *f</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="hkl-hkl.html#HklParameter" title="HklParameter"><span class="type">HklParameter</span></a> *self</code></em>);
-<span class="returnvalue">int</span>                 <a class="link" href="hkl-hkl-parameter-private.html#hkl-parameter-init-copy" title="hkl_parameter_init_copy ()">hkl_parameter_init_copy</a>             (<em class="parameter"><code><a class="link" href="hkl-hkl.html#HklParameter" title="HklParameter"><span class="type">HklParameter</span></a> *self</code></em>,
-                                                         <em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklParameter" title="HklParameter"><span class="type">HklParameter</span></a> *src</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);
-<span class="returnvalue">int</span>                 <a class="link" href="hkl-hkl-parameter-private.html#hkl-parameter-is-valid" title="hkl_parameter_is_valid ()">hkl_parameter_is_valid</a>              (<em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklParameter" title="HklParameter"><span class="type">HklParameter</span></a> *self</code></em>);
-<a class="link" href="hkl-hkl.html#HklParameter" title="HklParameter"><span class="returnvalue">HklParameter</span></a> *      <a class="link" href="hkl-hkl-parameter-private.html#hkl-parameter-new" title="hkl_parameter_new ()">hkl_parameter_new</a>                   (<em class="parameter"><code>const <span class="type">char</span> *name</code></em>,
-                                                         <em class="parameter"><code>const <span class="type">char</span> *description</code></em>,
-                                                         <em class="parameter"><code><span class="type">double</span> min</code></em>,
-                                                         <em class="parameter"><code><span class="type">double</span> value</code></em>,
-                                                         <em class="parameter"><code><span class="type">double</span> max</code></em>,
-                                                         <em class="parameter"><code><span class="type">int</span> fit</code></em>,
-                                                         <em class="parameter"><code><span class="type">int</span> changed</code></em>,
-                                                         <em class="parameter"><code>const <a class="link" href="hkl-hkl-unit-private.html#HklUnit" title="struct HklUnit"><span class="type">HklUnit</span></a> *unit</code></em>,
-                                                         <em class="parameter"><code>const <a class="link" href="hkl-hkl-unit-private.html#HklUnit" title="struct HklUnit"><span class="type">HklUnit</span></a> *punit</code></em>);
-<span class="returnvalue">double</span>              <a class="link" href="hkl-hkl-parameter-private.html#hkl-parameter-value-get-closest" title="hkl_parameter_value_get_closest ()">hkl_parameter_value_get_closest</a>     (<em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklParameter" title="HklParameter"><span class="type">HklParameter</span></a> *self</code></em>,
-                                                         <em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklParameter" title="HklParameter"><span class="type">HklParameter</span></a> *ref</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="hkl-hkl-parameter-private.html#hkl-parameter-value-set-smallest-in-range" title="hkl_parameter_value_set_smallest_in_range ()">hkl_parameter_value_set_smallest_in_range</a>
-                                                        (<em class="parameter"><code><a class="link" href="hkl-hkl.html#HklParameter" title="HklParameter"><span class="type">HklParameter</span></a> *self</code></em>);
-</pre>
+<div class="refsect1">
+<a name="hkl-hkl-parameter-private.functions"></a><h2>Functions</h2>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="functions_return">
+<col class="functions_name">
+</colgroup>
+<tbody>
+<tr>
+<td class="function_type">
+<span class="returnvalue">return</span>
+</td>
+<td class="function_name">
+<a class="link" href="hkl-hkl-geometry-private.html#g-quark-from-static-string" title="g_quark_from_static_string ()">g_quark_from_static_string</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">else</span>
+</td>
+<td class="function_name">
+<a class="link" href="hkl-hkl-parameter-private.html#fprintf" title="fprintf ()">fprintf</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="hkl-hkl.html#HklParameter" title="HklParameter"><span class="returnvalue">HklParameter</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="hkl-hkl-parameter-private.html#hkl-parameter-new" title="hkl_parameter_new ()">hkl_parameter_new</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">int</span>
+</td>
+<td class="function_name">
+<a class="link" href="hkl-hkl-parameter-private.html#hkl-parameter-init-copy" title="hkl_parameter_init_copy ()">hkl_parameter_init_copy</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">double</span>
+</td>
+<td class="function_name">
+<a class="link" href="hkl-hkl-parameter-private.html#hkl-parameter-value-get-closest" title="hkl_parameter_value_get_closest ()">hkl_parameter_value_get_closest</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="hkl-hkl-parameter-private.html#hkl-parameter-value-set-smallest-in-range" title="hkl_parameter_value_set_smallest_in_range ()">hkl_parameter_value_set_smallest_in_range</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">int</span>
+</td>
+<td class="function_name">
+<a class="link" href="hkl-hkl-parameter-private.html#hkl-parameter-is-valid" title="hkl_parameter_is_valid ()">hkl_parameter_is_valid</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="hkl-hkl-parameter-private.html#hkl-parameter-fprintf" title="hkl_parameter_fprintf ()">hkl_parameter_fprintf</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="hkl-hkl-parameter-private.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="name">
+<col class="description">
+</colgroup>
+<tbody>
+<tr>
+<td class="datatype_keyword"> </td>
+<td class="function_name"><a class="link" href="hkl-hkl.html#HklParameter" title="HklParameter">HklParameter</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="hkl-hkl-parameter-private.html#HKL-PARAMETER-DEFAULTS:CAPS" title="HKL_PARAMETER_DEFAULTS">HKL_PARAMETER_DEFAULTS</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="hkl-hkl-parameter-private.html#HKL-PARAMETER-DEFAULTS-ANGLE:CAPS" title="HKL_PARAMETER_DEFAULTS_ANGLE">HKL_PARAMETER_DEFAULTS_ANGLE</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="hkl-hkl-parameter-private.html#HKL-PARAMETER-ERROR:CAPS" title="HKL_PARAMETER_ERROR">HKL_PARAMETER_ERROR</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword">enum</td>
+<td class="function_name"><a class="link" href="hkl-hkl-parameter-private.html#HklParameterError" title="enum HklParameterError">HklParameterError</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword">struct</td>
+<td class="function_name"><a class="link" href="hkl-hkl-parameter-private.html#HklParameterOperations" title="struct HklParameterOperations">HklParameterOperations</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="hkl-hkl-parameter-private.html#HKL-PARAMETER-OPERATIONS-DEFAULTS:CAPS" title="HKL_PARAMETER_OPERATIONS_DEFAULTS">HKL_PARAMETER_OPERATIONS_DEFAULTS</a></td>
+</tr>
+<tr>
+<td class="variable_type">HklParameter *</td>
+<td class="function_name"><a class="link" href="hkl-hkl-parameter-private.html#dup" title="dup">dup</a></td>
+</tr>
+<tr>
+<td class="variable_type">double </td>
+<td class="function_name"><a class="link" href="hkl-hkl-parameter-private.html#alea" title="alea">alea</a></td>
+</tr>
+<tr>
+<td class="variable_type">double </td>
+<td class="function_name"><a class="link" href="hkl-hkl-parameter-private.html#factor" title="factor">factor</a></td>
+</tr>
+<tr>
+<td class="typedef_keyword">typedef</td>
+<td class="function_name"><a class="link" href="hkl-hkl-parameter-private.html#darray-parameter" title="darray_parameter">darray_parameter</a></td>
+</tr>
+</tbody>
+</table></div>
 </div>
 <div class="refsect1">
 <a name="hkl-hkl-parameter-private.description"></a><h2>Description</h2>
 </div>
 <div class="refsect1">
-<a name="hkl-hkl-parameter-private.details"></a><h2>Details</h2>
+<a name="hkl-hkl-parameter-private.functions_details"></a><h2>Functions</h2>
 <div class="refsect2">
-<a name="HKL-PARAMETER-DEFAULTS:CAPS"></a><h3>HKL_PARAMETER_DEFAULTS</h3>
-<pre class="programlisting">#define HKL_PARAMETER_DEFAULTS .name="dummy", .description="no description", .range={.min=0, .max=0}, ._value=0, .unit=NULL, .punit=NULL, .fit=TRUE, .changed=TRUE, .ops = &hkl_parameter_operations_defaults
-</pre>
+<a name="g-quark-from-static-string"></a><h3>g_quark_from_static_string ()</h3>
+<pre class="programlisting"><span class="returnvalue">return</span>
+g_quark_from_static_string ();</pre>
 </div>
 <hr>
 <div class="refsect2">
-<a name="HKL-PARAMETER-DEFAULTS-ANGLE:CAPS"></a><h3>HKL_PARAMETER_DEFAULTS_ANGLE</h3>
-<pre class="programlisting">#define HKL_PARAMETER_DEFAULTS_ANGLE HKL_PARAMETER_DEFAULTS, .range={.min=-M_PI, .max=M_PI}, .unit = &hkl_unit_angle_rad, .punit = &hkl_unit_angle_deg
-</pre>
+<a name="fprintf"></a><h3>fprintf ()</h3>
+<pre class="programlisting"><span class="returnvalue">else</span>
+fprintf (<em class="parameter"><code><span class="type">f</span> Param1</code></em>);</pre>
 </div>
 <hr>
 <div class="refsect2">
-<a name="HKL-PARAMETER-ERROR:CAPS"></a><h3>HKL_PARAMETER_ERROR</h3>
-<pre class="programlisting">#define HKL_PARAMETER_ERROR hkl_parameter_error_quark ()
-</pre>
+<a name="hkl-parameter-new"></a><h3>hkl_parameter_new ()</h3>
+<pre class="programlisting"><a class="link" href="hkl-hkl.html#HklParameter" title="HklParameter"><span class="returnvalue">HklParameter</span></a> *
+hkl_parameter_new (<em class="parameter"><code>const <span class="type">char</span> *name</code></em>,
+                   <em class="parameter"><code>const <span class="type">char</span> *description</code></em>,
+                   <em class="parameter"><code><span class="type">double</span> min</code></em>,
+                   <em class="parameter"><code><span class="type">double</span> value</code></em>,
+                   <em class="parameter"><code><span class="type">double</span> max</code></em>,
+                   <em class="parameter"><code><span class="type">int</span> fit</code></em>,
+                   <em class="parameter"><code><span class="type">int</span> changed</code></em>,
+                   <em class="parameter"><code>const <a class="link" href="hkl-hkl-unit-private.html#HklUnit" title="struct HklUnit"><span class="type">HklUnit</span></a> *unit</code></em>,
+                   <em class="parameter"><code>const <a class="link" href="hkl-hkl-unit-private.html#HklUnit" title="struct HklUnit"><span class="type">HklUnit</span></a> *punit</code></em>);</pre>
+<p>create a new <a class="link" href="hkl-hkl.html#HklParameter" title="HklParameter"><span class="type">HklParameter</span></a></p>
+<div class="refsect3">
+<a name="id-1.2.18.6.4.5"></a><h4>Returns</h4>
+<p></p>
+</div>
 </div>
 <hr>
 <div class="refsect2">
-<a name="HKL-PARAMETER-OPERATIONS-DEFAULTS:CAPS"></a><h3>HKL_PARAMETER_OPERATIONS_DEFAULTS</h3>
-<pre class="programlisting">#define             HKL_PARAMETER_OPERATIONS_DEFAULTS</pre>
+<a name="hkl-parameter-init-copy"></a><h3>hkl_parameter_init_copy ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+hkl_parameter_init_copy (<em class="parameter"><code><a class="link" href="hkl-hkl.html#HklParameter" title="HklParameter"><span class="type">HklParameter</span></a> *self</code></em>,
+                         <em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklParameter" title="HklParameter"><span class="type">HklParameter</span></a> *src</code></em>,
+                         <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
+<div class="refsect3">
+<a name="id-1.2.18.6.5.4"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>self</p></td>
+<td class="parameter_description"><p>the this ptr</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>src</p></td>
+<td class="parameter_description"><p>the parameter to copy from</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>error</p></td>
+<td class="parameter_description"><p>return location for a GError, or NULL</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="id-1.2.18.6.5.5"></a><h4>Returns</h4>
+<p> TRUE on success, FALSE if an error occurred</p>
+<p></p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="hkl-parameter-value-get-closest"></a><h3>hkl_parameter_value_get_closest ()</h3>
+<pre class="programlisting"><span class="returnvalue">double</span>
+hkl_parameter_value_get_closest (<em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklParameter" title="HklParameter"><span class="type">HklParameter</span></a> *self</code></em>,
+                                 <em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklParameter" title="HklParameter"><span class="type">HklParameter</span></a> *ref</code></em>);</pre>
+<div class="refsect3">
+<a name="id-1.2.18.6.6.4"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>self</p></td>
+<td class="parameter_description"><p>the this ptr</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>ref</p></td>
+<td class="parameter_description"><p>the reference <a class="link" href="hkl-hkl.html#HklParameter" title="HklParameter"><span class="type">HklParameter</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="id-1.2.18.6.6.5"></a><h4>Returns</h4>
+<p> the closest value of the ref <a class="link" href="hkl-hkl.html#HklParameter" title="HklParameter"><span class="type">HklParameter</span></a> from the
+current self <a class="link" href="hkl-hkl.html#HklParameter" title="HklParameter"><span class="type">HklParameter</span></a></p>
+<p></p>
+</div>
 </div>
 <hr>
 <div class="refsect2">
+<a name="hkl-parameter-value-set-smallest-in-range"></a><h3>hkl_parameter_value_set_smallest_in_range ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+hkl_parameter_value_set_smallest_in_range
+                               (<em class="parameter"><code><a class="link" href="hkl-hkl.html#HklParameter" title="HklParameter"><span class="type">HklParameter</span></a> *self</code></em>);</pre>
+<div class="refsect3">
+<a name="id-1.2.18.6.7.4"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>self</p></td>
+<td class="parameter_description"><p>the this ptr</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="hkl-parameter-is-valid"></a><h3>hkl_parameter_is_valid ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+hkl_parameter_is_valid (<em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklParameter" title="HklParameter"><span class="type">HklParameter</span></a> *self</code></em>);</pre>
+<p>check if the value of the <a class="link" href="hkl-hkl.html#HklParameter" title="HklParameter"><span class="type">HklParameter</span></a> is in the min,max range</p>
+<div class="refsect3">
+<a name="id-1.2.18.6.8.5"></a><h4>Returns</h4>
+<p></p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="hkl-parameter-fprintf"></a><h3>hkl_parameter_fprintf ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+hkl_parameter_fprintf (<em class="parameter"><code><span class="type">FILE</span> *f</code></em>,
+                       <em class="parameter"><code><a class="link" href="hkl-hkl.html#HklParameter" title="HklParameter"><span class="type">HklParameter</span></a> *self</code></em>);</pre>
+<p>print into the <span class="type">FILE</span> f an <a class="link" href="hkl-hkl.html#HklParameter" title="HklParameter"><span class="type">HklParameter</span></a></p>
+</div>
+</div>
+<div class="refsect1">
+<a name="hkl-hkl-parameter-private.other_details"></a><h2>Types and Values</h2>
+<div class="refsect2">
 <a name="HklParameter"></a><h3>HklParameter</h3>
 <pre class="programlisting">typedef struct {
 	const char *name;
@@ -116,14 +332,43 @@ double              <a class="link" href="hkl-hkl-parameter-private.html#factor"
 </div>
 <hr>
 <div class="refsect2">
-<a name="HklParameterError"></a><h3>enum HklParameterError</h3>
-<pre class="programlisting">typedef enum {
-	HKL_PARAMETER_ERROR_MIN_MAX_SET, /* can not set the min max */
-} HklParameterError;
+<a name="HKL-PARAMETER-DEFAULTS:CAPS"></a><h3>HKL_PARAMETER_DEFAULTS</h3>
+<pre class="programlisting">#define HKL_PARAMETER_DEFAULTS .name="dummy", .description="no description", .range={.min=0, .max=0}, ._value=0, .unit=NULL, .punit=NULL, .fit=TRUE, .changed=TRUE, .ops = &hkl_parameter_operations_defaults
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="HKL-PARAMETER-DEFAULTS-ANGLE:CAPS"></a><h3>HKL_PARAMETER_DEFAULTS_ANGLE</h3>
+<pre class="programlisting">#define HKL_PARAMETER_DEFAULTS_ANGLE HKL_PARAMETER_DEFAULTS, .range={.min=-M_PI, .max=M_PI}, .unit = &hkl_unit_angle_rad, .punit = &hkl_unit_angle_deg
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="HKL-PARAMETER-ERROR:CAPS"></a><h3>HKL_PARAMETER_ERROR</h3>
+<pre class="programlisting">#define HKL_PARAMETER_ERROR hkl_parameter_error_quark ()
 </pre>
 </div>
 <hr>
 <div class="refsect2">
+<a name="HklParameterError"></a><h3>enum HklParameterError</h3>
+<div class="refsect3">
+<a name="id-1.2.18.7.6.3"></a><h4>Members</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="300px" class="enum_members_name">
+<col class="enum_members_description">
+<col width="200px" class="enum_members_annotations">
+</colgroup>
+<tbody><tr>
+<td class="enum_member_name"><p><a name="HKL-PARAMETER-ERROR-MIN-MAX-SET:CAPS"></a>HKL_PARAMETER_ERROR_MIN_MAX_SET</p></td>
+<td> </td>
+<td> </td>
+</tr></tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
 <a name="HklParameterOperations"></a><h3>struct HklParameterOperations</h3>
 <pre class="programlisting">struct HklParameterOperations {
 	HklParameter *        (*copy)(const HklParameter *self);
@@ -145,20 +390,19 @@ double              <a class="link" href="hkl-hkl-parameter-private.html#factor"
 </div>
 <hr>
 <div class="refsect2">
-<a name="alea"></a><h3>alea</h3>
-<pre class="programlisting">		double alea = (double)rand() / (RAND_MAX + 1.);
-</pre>
+<a name="HKL-PARAMETER-OPERATIONS-DEFAULTS:CAPS"></a><h3>HKL_PARAMETER_OPERATIONS_DEFAULTS</h3>
+<pre class="programlisting">#define             HKL_PARAMETER_OPERATIONS_DEFAULTS</pre>
 </div>
 <hr>
 <div class="refsect2">
-<a name="darray-parameter"></a><h3>darray_parameter</h3>
-<pre class="programlisting">typedef darray(HklParameter *) darray_parameter;
+<a name="dup"></a><h3>dup</h3>
+<pre class="programlisting">	HklParameter *dup = HKL_MALLOC(HklParameter);
 </pre>
 </div>
 <hr>
 <div class="refsect2">
-<a name="dup"></a><h3>dup</h3>
-<pre class="programlisting">	HklParameter *dup = HKL_MALLOC(HklParameter);
+<a name="alea"></a><h3>alea</h3>
+<pre class="programlisting">		double alea = (double)rand() / (RAND_MAX + 1.);
 </pre>
 </div>
 <hr>
@@ -169,118 +413,14 @@ double              <a class="link" href="hkl-hkl-parameter-private.html#factor"
 </div>
 <hr>
 <div class="refsect2">
-<a name="fprintf"></a><h3>fprintf ()</h3>
-<pre class="programlisting"><span class="returnvalue">else</span>                fprintf                             (<em class="parameter"><code><span class="type">f</span> Param1</code></em>);</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="g-quark-from-static-string"></a><h3>g_quark_from_static_string ()</h3>
-<pre class="programlisting"><span class="returnvalue">return</span>              g_quark_from_static_string          ();</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="hkl-parameter-fprintf"></a><h3>hkl_parameter_fprintf ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                hkl_parameter_fprintf               (<em class="parameter"><code><span class="type">FILE</span> *f</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="hkl-hkl.html#HklParameter" title="HklParameter"><span class="type">HklParameter</span></a> *self</code></em>);</pre>
-<p>
-print into the <span class="type">FILE</span> f an <a class="link" href="hkl-hkl.html#HklParameter" title="HklParameter"><span class="type">HklParameter</span></a>
-</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="hkl-parameter-init-copy"></a><h3>hkl_parameter_init_copy ()</h3>
-<pre class="programlisting"><span class="returnvalue">int</span>                 hkl_parameter_init_copy             (<em class="parameter"><code><a class="link" href="hkl-hkl.html#HklParameter" title="HklParameter"><span class="type">HklParameter</span></a> *self</code></em>,
-                                                         <em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklParameter" title="HklParameter"><span class="type">HklParameter</span></a> *src</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
-<td>the this ptr</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>src</code></em> :</span></p></td>
-<td>the parameter to copy from</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>error</code></em> :</span></p></td>
-<td>return location for a GError, or NULL</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>TRUE on success, FALSE if an error occurred</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="hkl-parameter-is-valid"></a><h3>hkl_parameter_is_valid ()</h3>
-<pre class="programlisting"><span class="returnvalue">int</span>                 hkl_parameter_is_valid              (<em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklParameter" title="HklParameter"><span class="type">HklParameter</span></a> *self</code></em>);</pre>
-<p>
-check if the value of the <a class="link" href="hkl-hkl.html#HklParameter" title="HklParameter"><span class="type">HklParameter</span></a> is in the min,max range
-</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="hkl-parameter-new"></a><h3>hkl_parameter_new ()</h3>
-<pre class="programlisting"><a class="link" href="hkl-hkl.html#HklParameter" title="HklParameter"><span class="returnvalue">HklParameter</span></a> *      hkl_parameter_new                   (<em class="parameter"><code>const <span class="type">char</span> *name</code></em>,
-                                                         <em class="parameter"><code>const <span class="type">char</span> *description</code></em>,
-                                                         <em class="parameter"><code><span class="type">double</span> min</code></em>,
-                                                         <em class="parameter"><code><span class="type">double</span> value</code></em>,
-                                                         <em class="parameter"><code><span class="type">double</span> max</code></em>,
-                                                         <em class="parameter"><code><span class="type">int</span> fit</code></em>,
-                                                         <em class="parameter"><code><span class="type">int</span> changed</code></em>,
-                                                         <em class="parameter"><code>const <a class="link" href="hkl-hkl-unit-private.html#HklUnit" title="struct HklUnit"><span class="type">HklUnit</span></a> *unit</code></em>,
-                                                         <em class="parameter"><code>const <a class="link" href="hkl-hkl-unit-private.html#HklUnit" title="struct HklUnit"><span class="type">HklUnit</span></a> *punit</code></em>);</pre>
-<p>
-create a new <a class="link" href="hkl-hkl.html#HklParameter" title="HklParameter"><span class="type">HklParameter</span></a>
-</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="hkl-parameter-value-get-closest"></a><h3>hkl_parameter_value_get_closest ()</h3>
-<pre class="programlisting"><span class="returnvalue">double</span>              hkl_parameter_value_get_closest     (<em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklParameter" title="HklParameter"><span class="type">HklParameter</span></a> *self</code></em>,
-                                                         <em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklParameter" title="HklParameter"><span class="type">HklParameter</span></a> *ref</code></em>);</pre>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
-<td>the this ptr</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>ref</code></em> :</span></p></td>
-<td>the reference <a class="link" href="hkl-hkl.html#HklParameter" title="HklParameter"><span class="type">HklParameter</span></a>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>the closest value of the ref <a class="link" href="hkl-hkl.html#HklParameter" title="HklParameter"><span class="type">HklParameter</span></a> from the
-current self <a class="link" href="hkl-hkl.html#HklParameter" title="HklParameter"><span class="type">HklParameter</span></a>
-</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="hkl-parameter-value-set-smallest-in-range"></a><h3>hkl_parameter_value_set_smallest_in_range ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                hkl_parameter_value_set_smallest_in_range
-                                                        (<em class="parameter"><code><a class="link" href="hkl-hkl.html#HklParameter" title="HklParameter"><span class="type">HklParameter</span></a> *self</code></em>);</pre>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody><tr>
-<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
-<td>the this ptr</td>
-</tr></tbody>
-</table></div>
+<a name="darray-parameter"></a><h3>darray_parameter</h3>
+<pre class="programlisting">typedef darray(HklParameter *) darray_parameter;
+</pre>
 </div>
 </div>
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/Documentation/api/html/hkl-hkl-pseudoaxis-auto-private.html b/Documentation/api/html/hkl-hkl-pseudoaxis-auto-private.html
index 286c05d..3dacef3 100644
--- a/Documentation/api/html/hkl-hkl-pseudoaxis-auto-private.html
+++ b/Documentation/api/html/hkl-hkl-pseudoaxis-auto-private.html
@@ -2,30 +2,26 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>hkl-pseudoaxis-auto-private</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<title>hkl Reference Manual: hkl-pseudoaxis-auto-private</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="hkl Reference Manual">
 <link rel="up" href="ch01.html" title="[Insert title here]">
 <link rel="prev" href="hkl-hkl-parameter-private.html" title="hkl-parameter-private">
 <link rel="next" href="hkl-hkl-pseudoaxis-common-eulerians-private.html" title="hkl-pseudoaxis-common-eulerians-private">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
-<tr valign="middle">
-<td><a accesskey="p" href="hkl-hkl-parameter-private.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">hkl Reference Manual</th>
-<td><a accesskey="n" href="hkl-hkl-pseudoaxis-common-eulerians-private.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
-</tr>
-<tr><td colspan="5" class="shortcuts">
-<a href="#hkl-hkl-pseudoaxis-auto-private.synopsis" class="shortcut">Top</a>
-                   | 
-                  <a href="#hkl-hkl-pseudoaxis-auto-private.description" class="shortcut">Description</a>
-</td></tr>
-</table>
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts">
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+                  <a href="#hkl-hkl-pseudoaxis-auto-private.description" class="shortcut">Description</a></span>
+</td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="p" href="hkl-hkl-parameter-private.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="hkl-hkl-pseudoaxis-common-eulerians-private.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
 <div class="refentry">
 <a name="hkl-hkl-pseudoaxis-auto-private"></a><div class="titlepage"></div>
 <div class="refnamediv"><table width="100%"><tr>
@@ -33,54 +29,129 @@
 <h2><span class="refentrytitle"><a name="hkl-hkl-pseudoaxis-auto-private.top_of_page"></a>hkl-pseudoaxis-auto-private</span></h2>
 <p>hkl-pseudoaxis-auto-private</p>
 </td>
-<td valign="top" align="right"></td>
+<td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
-<div class="refsynopsisdiv">
-<a name="hkl-hkl-pseudoaxis-auto-private.synopsis"></a><h2>Synopsis</h2>
-<pre class="synopsis">#define             <a class="link" href="hkl-hkl-pseudoaxis-auto-private.html#CHECK-NAN:CAPS" title="CHECK_NAN()">CHECK_NAN</a>                           (x,
-                                                         len)
-#define             <a class="link" href="hkl-hkl-pseudoaxis-auto-private.html#HKL-MODE-AUTO-INFO:CAPS" title="HKL_MODE_AUTO_INFO()">HKL_MODE_AUTO_INFO</a>                  (_name,
-                                                         _axes_r,
-                                                         _axes_w,
-                                                         _fn)
-#define             <a class="link" href="hkl-hkl-pseudoaxis-auto-private.html#HKL-MODE-AUTO-INFO-WITH-PARAMS:CAPS" title="HKL_MODE_AUTO_INFO_WITH_PARAMS()">HKL_MODE_AUTO_INFO_WITH_PARAMS</a>      (_name,
-                                                         _axes_r,
-                                                         _axes_w,
-                                                         _fn,
-                                                         _parameters)
-#define             <a class="link" href="hkl-hkl-pseudoaxis-auto-private.html#HKL-MODE-AUTO-WITH-INIT-ERROR:CAPS" title="HKL_MODE_AUTO_WITH_INIT_ERROR">HKL_MODE_AUTO_WITH_INIT_ERROR</a>
-#define             <a class="link" href="hkl-hkl-pseudoaxis-auto-private.html#HKL-MODE-OPERATIONS-AUTO-DEFAULTS:CAPS" title="HKL_MODE_OPERATIONS_AUTO_DEFAULTS">HKL_MODE_OPERATIONS_AUTO_DEFAULTS</a>
-#define             <a class="link" href="hkl-hkl-pseudoaxis-auto-private.html#HKL-MODE-OPERATIONS-AUTO-WITH-INIT-DEFAULTS:CAPS" title="HKL_MODE_OPERATIONS_AUTO_WITH_INIT_DEFAULTS">HKL_MODE_OPERATIONS_AUTO_WITH_INIT_DEFAULTS</a>
-struct              <a class="link" href="hkl-hkl-pseudoaxis-auto-private.html#HklFunction" title="struct HklFunction">HklFunction</a>;
-struct              <a class="link" href="hkl-hkl-pseudoaxis-auto-private.html#HklModeAutoInfo" title="struct HklModeAutoInfo">HklModeAutoInfo</a>;
-struct              <a class="link" href="hkl-hkl-pseudoaxis-auto-private.html#HklModeAutoWithInit" title="struct HklModeAutoWithInit">HklModeAutoWithInit</a>;
-enum                <a class="link" href="hkl-hkl-pseudoaxis-auto-private.html#HklModeError" title="enum HklModeError">HklModeError</a>;
-typedef             <a class="link" href="hkl-hkl-pseudoaxis-auto-private.html#darray-function" title="darray_function">darray_function</a>;
-<span class="returnvalue">return</span>              <a class="link" href="hkl-hkl-geometry-private.html#g-quark-from-static-string" title="g_quark_from_static_string ()">g_quark_from_static_string</a>          ();
-<span class="returnvalue">void</span>                <a class="link" href="hkl-hkl-pseudoaxis-auto-private.html#hkl-mode-auto-init" title="hkl_mode_auto_init ()">hkl_mode_auto_init</a>                  (<em class="parameter"><code><a class="link" href="hkl-hkl-pseudoaxis-private.html#HklMode" title="struct HklMode"><span class="type">HklMode</span></a> *self</code></em>,
-                                                         <em class="parameter"><code>const <a class="link" href="hkl-hkl-pseudoaxis-auto-private.html#HklModeAutoInfo" title="struct HklModeAutoInfo"><span class="type">HklModeAutoInfo</span></a> *auto_info</code></em>,
-                                                         <em class="parameter"><code>const <a class="link" href="hkl-hkl-pseudoaxis-private.html#HklModeOperations" title="struct HklModeOperations"><span class="type">HklModeOperations</span></a> *ops</code></em>,
-                                                         <em class="parameter"><code><span class="type">int</span> initialized</code></em>);
-<a class="link" href="hkl-hkl-pseudoaxis-private.html#HklMode" title="struct HklMode"><span class="returnvalue">HklMode</span></a> *           <a class="link" href="hkl-hkl-pseudoaxis-auto-private.html#hkl-mode-auto-new" title="hkl_mode_auto_new ()">hkl_mode_auto_new</a>                   (<em class="parameter"><code>const <a class="link" href="hkl-hkl-pseudoaxis-auto-private.html#HklModeAutoInfo" title="struct HklModeAutoInfo"><span class="type">HklModeAutoInfo</span></a> *auto_info</co [...]
-                                                         <em class="parameter"><code>const <a class="link" href="hkl-hkl-pseudoaxis-private.html#HklModeOperations" title="struct HklModeOperations"><span class="type">HklModeOperations</span></a> *ops</code></em>,
-                                                         <em class="parameter"><code><span class="type">int</span> initialized</code></em>);
-<span class="returnvalue">int</span>                 <a class="link" href="hkl-hkl-pseudoaxis-auto-private.html#hkl-mode-auto-set-real" title="hkl_mode_auto_set_real ()">hkl_mode_auto_set_real</a>              (<em class="parameter"><code><a class="link" href="hkl-hkl-pseudoaxis-private.html#HklMode" title="struct HklMode"><span class="type">HklMode</span></a> *self</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="hkl-hkl.html#HklEngine" title="HklEngine"><span class="type">HklEngine</span></a> *engine</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="hkl-hkl.html#HklGeometry" title="HklGeometry"><span class="type">HklGeometry</span></a> *geometry</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="hkl-hkl.html#HklDetector" title="HklDetector"><span class="type">HklDetector</span></a> *detector</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="hkl-hkl.html#HklSample" title="HklSample"><span class="type">HklSample</span></a> *sample</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);
-<a class="link" href="hkl-hkl-pseudoaxis-private.html#HklMode" title="struct HklMode"><span class="returnvalue">HklMode</span></a> *           <a class="link" href="hkl-hkl-pseudoaxis-auto-private.html#hkl-mode-auto-with-init-new" title="hkl_mode_auto_with_init_new ()">hkl_mode_auto_with_init_new</a>         (<em class="parameter"><code>const <a class="link" href="hkl-hkl-pseudoaxis-auto-private.html#HklModeAutoInfo" title="struct HklModeAutoInfo"><span class="type">HklModeAutoInfo</span [...]
-                                                         <em class="parameter"><code>const <a class="link" href="hkl-hkl-pseudoaxis-private.html#HklModeOperations" title="struct HklModeOperations"><span class="type">HklModeOperations</span></a> *ops</code></em>,
-                                                         <em class="parameter"><code><span class="type">int</span> initialized</code></em>);
-HklMode *           <a class="link" href="hkl-hkl-pseudoaxis-auto-private.html#self" title="self">self</a>;
-</pre>
+<div class="refsect1">
+<a name="hkl-hkl-pseudoaxis-auto-private.functions"></a><h2>Functions</h2>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="functions_return">
+<col class="functions_name">
+</colgroup>
+<tbody>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name">
+<a class="link" href="hkl-hkl-pseudoaxis-auto-private.html#CHECK-NAN:CAPS" title="CHECK_NAN()">CHECK_NAN</a><span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name">
+<a class="link" href="hkl-hkl-pseudoaxis-auto-private.html#HKL-MODE-AUTO-INFO:CAPS" title="HKL_MODE_AUTO_INFO()">HKL_MODE_AUTO_INFO</a><span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name">
+<a class="link" href="hkl-hkl-pseudoaxis-auto-private.html#HKL-MODE-AUTO-INFO-WITH-PARAMS:CAPS" title="HKL_MODE_AUTO_INFO_WITH_PARAMS()">HKL_MODE_AUTO_INFO_WITH_PARAMS</a><span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="hkl-hkl-pseudoaxis-private.html#HklMode" title="struct HklMode"><span class="returnvalue">HklMode</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="hkl-hkl-pseudoaxis-auto-private.html#hkl-mode-auto-new" title="hkl_mode_auto_new ()">hkl_mode_auto_new</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="hkl-hkl-pseudoaxis-auto-private.html#hkl-mode-auto-init" title="hkl_mode_auto_init ()">hkl_mode_auto_init</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">int</span>
+</td>
+<td class="function_name">
+<a class="link" href="hkl-hkl-pseudoaxis-auto-private.html#hkl-mode-auto-set-real" title="hkl_mode_auto_set_real ()">hkl_mode_auto_set_real</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">return</span>
+</td>
+<td class="function_name">
+<a class="link" href="hkl-hkl-geometry-private.html#g-quark-from-static-string" title="g_quark_from_static_string ()">g_quark_from_static_string</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="hkl-hkl-pseudoaxis-private.html#HklMode" title="struct HklMode"><span class="returnvalue">HklMode</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="hkl-hkl-pseudoaxis-auto-private.html#hkl-mode-auto-with-init-new" title="hkl_mode_auto_with_init_new ()">hkl_mode_auto_with_init_new</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="hkl-hkl-pseudoaxis-auto-private.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="name">
+<col class="description">
+</colgroup>
+<tbody>
+<tr>
+<td class="datatype_keyword">struct</td>
+<td class="function_name"><a class="link" href="hkl-hkl-pseudoaxis-auto-private.html#HklFunction" title="struct HklFunction">HklFunction</a></td>
+</tr>
+<tr>
+<td class="typedef_keyword">typedef</td>
+<td class="function_name"><a class="link" href="hkl-hkl-pseudoaxis-auto-private.html#darray-function" title="darray_function">darray_function</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword">struct</td>
+<td class="function_name"><a class="link" href="hkl-hkl-pseudoaxis-auto-private.html#HklModeAutoInfo" title="struct HklModeAutoInfo">HklModeAutoInfo</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="hkl-hkl-pseudoaxis-auto-private.html#HKL-MODE-OPERATIONS-AUTO-DEFAULTS:CAPS" title="HKL_MODE_OPERATIONS_AUTO_DEFAULTS">HKL_MODE_OPERATIONS_AUTO_DEFAULTS</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword">struct</td>
+<td class="function_name"><a class="link" href="hkl-hkl-pseudoaxis-auto-private.html#HklModeAutoWithInit" title="struct HklModeAutoWithInit">HklModeAutoWithInit</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="hkl-hkl-pseudoaxis-auto-private.html#HKL-MODE-AUTO-WITH-INIT-ERROR:CAPS" title="HKL_MODE_AUTO_WITH_INIT_ERROR">HKL_MODE_AUTO_WITH_INIT_ERROR</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword">enum</td>
+<td class="function_name"><a class="link" href="hkl-hkl-pseudoaxis-auto-private.html#HklModeError" title="enum HklModeError">HklModeError</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="hkl-hkl-pseudoaxis-auto-private.html#HKL-MODE-OPERATIONS-AUTO-WITH-INIT-DEFAULTS:CAPS" title="HKL_MODE_OPERATIONS_AUTO_WITH_INIT_DEFAULTS">HKL_MODE_OPERATIONS_AUTO_WITH_INIT_DEFAULTS</a></td>
+</tr>
+<tr>
+<td class="variable_type">HklMode *</td>
+<td class="function_name"><a class="link" href="hkl-hkl-pseudoaxis-auto-private.html#self" title="self">self</a></td>
+</tr>
+</tbody>
+</table></div>
 </div>
 <div class="refsect1">
 <a name="hkl-hkl-pseudoaxis-auto-private.description"></a><h2>Description</h2>
 </div>
 <div class="refsect1">
-<a name="hkl-hkl-pseudoaxis-auto-private.details"></a><h2>Details</h2>
+<a name="hkl-hkl-pseudoaxis-auto-private.functions_details"></a><h2>Functions</h2>
 <div class="refsect2">
 <a name="CHECK-NAN:CAPS"></a><h3>CHECK_NAN()</h3>
 <pre class="programlisting">#define             CHECK_NAN(x, len)</pre>
@@ -99,22 +170,50 @@ HklMode *           <a class="link" href="hkl-hkl-pseudoaxis-auto-private.html#s
 </div>
 <hr>
 <div class="refsect2">
-<a name="HKL-MODE-AUTO-WITH-INIT-ERROR:CAPS"></a><h3>HKL_MODE_AUTO_WITH_INIT_ERROR</h3>
-<pre class="programlisting">#define HKL_MODE_AUTO_WITH_INIT_ERROR hkl_mode_auto_with_init_error_quark ()
-</pre>
+<a name="hkl-mode-auto-new"></a><h3>hkl_mode_auto_new ()</h3>
+<pre class="programlisting"><a class="link" href="hkl-hkl-pseudoaxis-private.html#HklMode" title="struct HklMode"><span class="returnvalue">HklMode</span></a> *
+hkl_mode_auto_new (<em class="parameter"><code>const <a class="link" href="hkl-hkl-pseudoaxis-auto-private.html#HklModeAutoInfo" title="struct HklModeAutoInfo"><span class="type">HklModeAutoInfo</span></a> *auto_info</code></em>,
+                   <em class="parameter"><code>const <a class="link" href="hkl-hkl-pseudoaxis-private.html#HklModeOperations" title="struct HklModeOperations"><span class="type">HklModeOperations</span></a> *ops</code></em>,
+                   <em class="parameter"><code><span class="type">int</span> initialized</code></em>);</pre>
 </div>
 <hr>
 <div class="refsect2">
-<a name="HKL-MODE-OPERATIONS-AUTO-DEFAULTS:CAPS"></a><h3>HKL_MODE_OPERATIONS_AUTO_DEFAULTS</h3>
-<pre class="programlisting">#define             HKL_MODE_OPERATIONS_AUTO_DEFAULTS</pre>
+<a name="hkl-mode-auto-init"></a><h3>hkl_mode_auto_init ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+hkl_mode_auto_init (<em class="parameter"><code><a class="link" href="hkl-hkl-pseudoaxis-private.html#HklMode" title="struct HklMode"><span class="type">HklMode</span></a> *self</code></em>,
+                    <em class="parameter"><code>const <a class="link" href="hkl-hkl-pseudoaxis-auto-private.html#HklModeAutoInfo" title="struct HklModeAutoInfo"><span class="type">HklModeAutoInfo</span></a> *auto_info</code></em>,
+                    <em class="parameter"><code>const <a class="link" href="hkl-hkl-pseudoaxis-private.html#HklModeOperations" title="struct HklModeOperations"><span class="type">HklModeOperations</span></a> *ops</code></em>,
+                    <em class="parameter"><code><span class="type">int</span> initialized</code></em>);</pre>
 </div>
 <hr>
 <div class="refsect2">
-<a name="HKL-MODE-OPERATIONS-AUTO-WITH-INIT-DEFAULTS:CAPS"></a><h3>HKL_MODE_OPERATIONS_AUTO_WITH_INIT_DEFAULTS</h3>
-<pre class="programlisting">#define             HKL_MODE_OPERATIONS_AUTO_WITH_INIT_DEFAULTS</pre>
+<a name="hkl-mode-auto-set-real"></a><h3>hkl_mode_auto_set_real ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+hkl_mode_auto_set_real (<em class="parameter"><code><a class="link" href="hkl-hkl-pseudoaxis-private.html#HklMode" title="struct HklMode"><span class="type">HklMode</span></a> *self</code></em>,
+                        <em class="parameter"><code><a class="link" href="hkl-hkl.html#HklEngine" title="HklEngine"><span class="type">HklEngine</span></a> *engine</code></em>,
+                        <em class="parameter"><code><a class="link" href="hkl-hkl.html#HklGeometry" title="HklGeometry"><span class="type">HklGeometry</span></a> *geometry</code></em>,
+                        <em class="parameter"><code><a class="link" href="hkl-hkl.html#HklDetector" title="HklDetector"><span class="type">HklDetector</span></a> *detector</code></em>,
+                        <em class="parameter"><code><a class="link" href="hkl-hkl.html#HklSample" title="HklSample"><span class="type">HklSample</span></a> *sample</code></em>,
+                        <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="g-quark-from-static-string"></a><h3>g_quark_from_static_string ()</h3>
+<pre class="programlisting"><span class="returnvalue">return</span>
+g_quark_from_static_string ();</pre>
 </div>
 <hr>
 <div class="refsect2">
+<a name="hkl-mode-auto-with-init-new"></a><h3>hkl_mode_auto_with_init_new ()</h3>
+<pre class="programlisting"><a class="link" href="hkl-hkl-pseudoaxis-private.html#HklMode" title="struct HklMode"><span class="returnvalue">HklMode</span></a> *
+hkl_mode_auto_with_init_new (<em class="parameter"><code>const <a class="link" href="hkl-hkl-pseudoaxis-auto-private.html#HklModeAutoInfo" title="struct HklModeAutoInfo"><span class="type">HklModeAutoInfo</span></a> *info</code></em>,
+                             <em class="parameter"><code>const <a class="link" href="hkl-hkl-pseudoaxis-private.html#HklModeOperations" title="struct HklModeOperations"><span class="type">HklModeOperations</span></a> *ops</code></em>,
+                             <em class="parameter"><code><span class="type">int</span> initialized</code></em>);</pre>
+</div>
+</div>
+<div class="refsect1">
+<a name="hkl-hkl-pseudoaxis-auto-private.other_details"></a><h2>Types and Values</h2>
+<div class="refsect2">
 <a name="HklFunction"></a><h3>struct HklFunction</h3>
 <pre class="programlisting">struct HklFunction {
 	const uint size;
@@ -124,6 +223,12 @@ HklMode *           <a class="link" href="hkl-hkl-pseudoaxis-auto-private.html#s
 </div>
 <hr>
 <div class="refsect2">
+<a name="darray-function"></a><h3>darray_function</h3>
+<pre class="programlisting">typedef darray(const HklFunction*) darray_function;
+</pre>
+</div>
+<hr>
+<div class="refsect2">
 <a name="HklModeAutoInfo"></a><h3>struct HklModeAutoInfo</h3>
 <pre class="programlisting">struct HklModeAutoInfo {
 	const HklModeInfo info;
@@ -133,6 +238,11 @@ HklMode *           <a class="link" href="hkl-hkl-pseudoaxis-auto-private.html#s
 </div>
 <hr>
 <div class="refsect2">
+<a name="HKL-MODE-OPERATIONS-AUTO-DEFAULTS:CAPS"></a><h3>HKL_MODE_OPERATIONS_AUTO_DEFAULTS</h3>
+<pre class="programlisting">#define             HKL_MODE_OPERATIONS_AUTO_DEFAULTS</pre>
+</div>
+<hr>
+<div class="refsect2">
 <a name="HklModeAutoWithInit"></a><h3>struct HklModeAutoWithInit</h3>
 <pre class="programlisting">struct HklModeAutoWithInit {
 	HklMode mode;
@@ -144,54 +254,33 @@ HklMode *           <a class="link" href="hkl-hkl-pseudoaxis-auto-private.html#s
 </div>
 <hr>
 <div class="refsect2">
-<a name="HklModeError"></a><h3>enum HklModeError</h3>
-<pre class="programlisting">typedef enum {
-	HKL_MODE_AUTO_WITH_INIT_ERROR_INIT /* can not set the pseudo axis engine */
-} HklModeError;
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="darray-function"></a><h3>darray_function</h3>
-<pre class="programlisting">typedef darray(const HklFunction*) darray_function;
+<a name="HKL-MODE-AUTO-WITH-INIT-ERROR:CAPS"></a><h3>HKL_MODE_AUTO_WITH_INIT_ERROR</h3>
+<pre class="programlisting">#define HKL_MODE_AUTO_WITH_INIT_ERROR hkl_mode_auto_with_init_error_quark ()
 </pre>
 </div>
 <hr>
 <div class="refsect2">
-<a name="g-quark-from-static-string"></a><h3>g_quark_from_static_string ()</h3>
-<pre class="programlisting"><span class="returnvalue">return</span>              g_quark_from_static_string          ();</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="hkl-mode-auto-init"></a><h3>hkl_mode_auto_init ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                hkl_mode_auto_init                  (<em class="parameter"><code><a class="link" href="hkl-hkl-pseudoaxis-private.html#HklMode" title="struct HklMode"><span class="type">HklMode</span></a> *self</code></em>,
-                                                         <em class="parameter"><code>const <a class="link" href="hkl-hkl-pseudoaxis-auto-private.html#HklModeAutoInfo" title="struct HklModeAutoInfo"><span class="type">HklModeAutoInfo</span></a> *auto_info</code></em>,
-                                                         <em class="parameter"><code>const <a class="link" href="hkl-hkl-pseudoaxis-private.html#HklModeOperations" title="struct HklModeOperations"><span class="type">HklModeOperations</span></a> *ops</code></em>,
-                                                         <em class="parameter"><code><span class="type">int</span> initialized</code></em>);</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="hkl-mode-auto-new"></a><h3>hkl_mode_auto_new ()</h3>
-<pre class="programlisting"><a class="link" href="hkl-hkl-pseudoaxis-private.html#HklMode" title="struct HklMode"><span class="returnvalue">HklMode</span></a> *           hkl_mode_auto_new                   (<em class="parameter"><code>const <a class="link" href="hkl-hkl-pseudoaxis-auto-private.html#HklModeAutoInfo" title="struct HklModeAutoInfo"><span class="type">HklModeAutoInfo</span></a> *auto_info</code></em>,
-                                                         <em class="parameter"><code>const <a class="link" href="hkl-hkl-pseudoaxis-private.html#HklModeOperations" title="struct HklModeOperations"><span class="type">HklModeOperations</span></a> *ops</code></em>,
-                                                         <em class="parameter"><code><span class="type">int</span> initialized</code></em>);</pre>
+<a name="HklModeError"></a><h3>enum HklModeError</h3>
+<div class="refsect3">
+<a name="id-1.2.19.7.8.3"></a><h4>Members</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="300px" class="enum_members_name">
+<col class="enum_members_description">
+<col width="200px" class="enum_members_annotations">
+</colgroup>
+<tbody><tr>
+<td class="enum_member_name"><p><a name="HKL-MODE-AUTO-WITH-INIT-ERROR-INIT:CAPS"></a>HKL_MODE_AUTO_WITH_INIT_ERROR_INIT</p></td>
+<td> </td>
+<td> </td>
+</tr></tbody>
+</table></div>
 </div>
-<hr>
-<div class="refsect2">
-<a name="hkl-mode-auto-set-real"></a><h3>hkl_mode_auto_set_real ()</h3>
-<pre class="programlisting"><span class="returnvalue">int</span>                 hkl_mode_auto_set_real              (<em class="parameter"><code><a class="link" href="hkl-hkl-pseudoaxis-private.html#HklMode" title="struct HklMode"><span class="type">HklMode</span></a> *self</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="hkl-hkl.html#HklEngine" title="HklEngine"><span class="type">HklEngine</span></a> *engine</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="hkl-hkl.html#HklGeometry" title="HklGeometry"><span class="type">HklGeometry</span></a> *geometry</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="hkl-hkl.html#HklDetector" title="HklDetector"><span class="type">HklDetector</span></a> *detector</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="hkl-hkl.html#HklSample" title="HklSample"><span class="type">HklSample</span></a> *sample</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
 </div>
 <hr>
 <div class="refsect2">
-<a name="hkl-mode-auto-with-init-new"></a><h3>hkl_mode_auto_with_init_new ()</h3>
-<pre class="programlisting"><a class="link" href="hkl-hkl-pseudoaxis-private.html#HklMode" title="struct HklMode"><span class="returnvalue">HklMode</span></a> *           hkl_mode_auto_with_init_new         (<em class="parameter"><code>const <a class="link" href="hkl-hkl-pseudoaxis-auto-private.html#HklModeAutoInfo" title="struct HklModeAutoInfo"><span class="type">HklModeAutoInfo</span></a> *info</code></em>,
-                                                         <em class="parameter"><code>const <a class="link" href="hkl-hkl-pseudoaxis-private.html#HklModeOperations" title="struct HklModeOperations"><span class="type">HklModeOperations</span></a> *ops</code></em>,
-                                                         <em class="parameter"><code><span class="type">int</span> initialized</code></em>);</pre>
+<a name="HKL-MODE-OPERATIONS-AUTO-WITH-INIT-DEFAULTS:CAPS"></a><h3>HKL_MODE_OPERATIONS_AUTO_WITH_INIT_DEFAULTS</h3>
+<pre class="programlisting">#define             HKL_MODE_OPERATIONS_AUTO_WITH_INIT_DEFAULTS</pre>
 </div>
 <hr>
 <div class="refsect2">
@@ -203,6 +292,6 @@ HklMode *           <a class="link" href="hkl-hkl-pseudoaxis-auto-private.html#s
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/Documentation/api/html/hkl-hkl-pseudoaxis-common-eulerians-private.html b/Documentation/api/html/hkl-hkl-pseudoaxis-common-eulerians-private.html
index 281714a..0da6df8 100644
--- a/Documentation/api/html/hkl-hkl-pseudoaxis-common-eulerians-private.html
+++ b/Documentation/api/html/hkl-hkl-pseudoaxis-common-eulerians-private.html
@@ -2,30 +2,26 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>hkl-pseudoaxis-common-eulerians-private</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<title>hkl Reference Manual: hkl-pseudoaxis-common-eulerians-private</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="hkl Reference Manual">
 <link rel="up" href="ch01.html" title="[Insert title here]">
 <link rel="prev" href="hkl-hkl-pseudoaxis-auto-private.html" title="hkl-pseudoaxis-auto-private">
 <link rel="next" href="hkl-hkl-pseudoaxis-common-hkl-private.html" title="hkl-pseudoaxis-common-hkl-private">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
-<tr valign="middle">
-<td><a accesskey="p" href="hkl-hkl-pseudoaxis-auto-private.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">hkl Reference Manual</th>
-<td><a accesskey="n" href="hkl-hkl-pseudoaxis-common-hkl-private.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
-</tr>
-<tr><td colspan="5" class="shortcuts">
-<a href="#hkl-hkl-pseudoaxis-common-eulerians-private.synopsis" class="shortcut">Top</a>
-                   | 
-                  <a href="#hkl-hkl-pseudoaxis-common-eulerians-private.description" class="shortcut">Description</a>
-</td></tr>
-</table>
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts">
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+                  <a href="#hkl-hkl-pseudoaxis-common-eulerians-private.description" class="shortcut">Description</a></span>
+</td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="p" href="hkl-hkl-pseudoaxis-auto-private.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="hkl-hkl-pseudoaxis-common-hkl-private.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
 <div class="refentry">
 <a name="hkl-hkl-pseudoaxis-common-eulerians-private"></a><div class="titlepage"></div>
 <div class="refnamediv"><table width="100%"><tr>
@@ -33,44 +29,64 @@
 <h2><span class="refentrytitle"><a name="hkl-hkl-pseudoaxis-common-eulerians-private.top_of_page"></a>hkl-pseudoaxis-common-eulerians-private</span></h2>
 <p>hkl-pseudoaxis-common-eulerians-private</p>
 </td>
-<td valign="top" align="right"></td>
+<td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
-<div class="refsynopsisdiv">
-<a name="hkl-hkl-pseudoaxis-common-eulerians-private.synopsis"></a><h2>Synopsis</h2>
-<pre class="synopsis"><a class="link" href="hkl-hkl.html#HklEngine" title="HklEngine"><span class="returnvalue">HklEngine</span></a> *         <a class="link" href="hkl-hkl-pseudoaxis-common-eulerians-private.html#hkl-engine-eulerians-new" title="hkl_engine_eulerians_new ()">hkl_engine_eulerians_new</a>            (<em class="parameter"><code><a class="link" href="hkl-hkl.html#HklEngineList" title="HklEngineList"><span class="type">HklEngineList</span></a> *engines</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="hkl-hkl-pseudoaxis-common-eulerians-private.html#kappa-2-kappap" title="kappa_2_kappap ()">kappa_2_kappap</a>                      (<em class="parameter"><code><span class="type">double</span> komega</code></em>,
-                                                         <em class="parameter"><code><span class="type">double</span> kappa</code></em>,
-                                                         <em class="parameter"><code><span class="type">double</span> kphi</code></em>,
-                                                         <em class="parameter"><code><span class="type">double</span> alpha</code></em>,
-                                                         <em class="parameter"><code><span class="type">double</span> *komegap</code></em>,
-                                                         <em class="parameter"><code><span class="type">double</span> *kappap</code></em>,
-                                                         <em class="parameter"><code><span class="type">double</span> *kphip</code></em>);
-</pre>
+<div class="refsect1">
+<a name="hkl-hkl-pseudoaxis-common-eulerians-private.functions"></a><h2>Functions</h2>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="functions_return">
+<col class="functions_name">
+</colgroup>
+<tbody>
+<tr>
+<td class="function_type">
+<a class="link" href="hkl-hkl.html#HklEngine" title="HklEngine"><span class="returnvalue">HklEngine</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="hkl-hkl-pseudoaxis-common-eulerians-private.html#hkl-engine-eulerians-new" title="hkl_engine_eulerians_new ()">hkl_engine_eulerians_new</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="hkl-hkl-pseudoaxis-common-eulerians-private.html#kappa-2-kappap" title="kappa_2_kappap ()">kappa_2_kappap</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+</tbody>
+</table></div>
 </div>
 <div class="refsect1">
 <a name="hkl-hkl-pseudoaxis-common-eulerians-private.description"></a><h2>Description</h2>
 </div>
 <div class="refsect1">
-<a name="hkl-hkl-pseudoaxis-common-eulerians-private.details"></a><h2>Details</h2>
+<a name="hkl-hkl-pseudoaxis-common-eulerians-private.functions_details"></a><h2>Functions</h2>
 <div class="refsect2">
-<a name="hkl-engine-eulerians-new"></a><h3>hkl_engine_eulerians_new ()</h3>
-<pre class="programlisting"><a class="link" href="hkl-hkl.html#HklEngine" title="HklEngine"><span class="returnvalue">HklEngine</span></a> *         hkl_engine_eulerians_new            (<em class="parameter"><code><a class="link" href="hkl-hkl.html#HklEngineList" title="HklEngineList"><span class="type">HklEngineList</span></a> *engines</code></em>);</pre>
+<a name="hkl-engine-eulerians-new"></a><h3>hkl_engine_eulerians_new ()</h3>
+<pre class="programlisting"><a class="link" href="hkl-hkl.html#HklEngine" title="HklEngine"><span class="returnvalue">HklEngine</span></a> *
+hkl_engine_eulerians_new (<em class="parameter"><code><a class="link" href="hkl-hkl.html#HklEngineList" title="HklEngineList"><span class="type">HklEngineList</span></a> *engines</code></em>);</pre>
 </div>
 <hr>
 <div class="refsect2">
-<a name="kappa-2-kappap"></a><h3>kappa_2_kappap ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                kappa_2_kappap                      (<em class="parameter"><code><span class="type">double</span> komega</code></em>,
-                                                         <em class="parameter"><code><span class="type">double</span> kappa</code></em>,
-                                                         <em class="parameter"><code><span class="type">double</span> kphi</code></em>,
-                                                         <em class="parameter"><code><span class="type">double</span> alpha</code></em>,
-                                                         <em class="parameter"><code><span class="type">double</span> *komegap</code></em>,
-                                                         <em class="parameter"><code><span class="type">double</span> *kappap</code></em>,
-                                                         <em class="parameter"><code><span class="type">double</span> *kphip</code></em>);</pre>
+<a name="kappa-2-kappap"></a><h3>kappa_2_kappap ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+kappa_2_kappap (<em class="parameter"><code><span class="type">double</span> komega</code></em>,
+                <em class="parameter"><code><span class="type">double</span> kappa</code></em>,
+                <em class="parameter"><code><span class="type">double</span> kphi</code></em>,
+                <em class="parameter"><code><span class="type">double</span> alpha</code></em>,
+                <em class="parameter"><code><span class="type">double</span> *komegap</code></em>,
+                <em class="parameter"><code><span class="type">double</span> *kappap</code></em>,
+                <em class="parameter"><code><span class="type">double</span> *kphip</code></em>);</pre>
 </div>
 </div>
+<div class="refsect1">
+<a name="hkl-hkl-pseudoaxis-common-eulerians-private.other_details"></a><h2>Types and Values</h2>
+</div>
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/Documentation/api/html/hkl-hkl-pseudoaxis-common-hkl-private.html b/Documentation/api/html/hkl-hkl-pseudoaxis-common-hkl-private.html
index 3784af7..09c8155 100644
--- a/Documentation/api/html/hkl-hkl-pseudoaxis-common-hkl-private.html
+++ b/Documentation/api/html/hkl-hkl-pseudoaxis-common-hkl-private.html
@@ -2,30 +2,26 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>hkl-pseudoaxis-common-hkl-private</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<title>hkl Reference Manual: hkl-pseudoaxis-common-hkl-private</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="hkl Reference Manual">
 <link rel="up" href="ch01.html" title="[Insert title here]">
 <link rel="prev" href="hkl-hkl-pseudoaxis-common-eulerians-private.html" title="hkl-pseudoaxis-common-eulerians-private">
 <link rel="next" href="hkl-hkl-pseudoaxis-common-psi-private.html" title="hkl-pseudoaxis-common-psi-private">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
-<tr valign="middle">
-<td><a accesskey="p" href="hkl-hkl-pseudoaxis-common-eulerians-private.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">hkl Reference Manual</th>
-<td><a accesskey="n" href="hkl-hkl-pseudoaxis-common-psi-private.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
-</tr>
-<tr><td colspan="5" class="shortcuts">
-<a href="#hkl-hkl-pseudoaxis-common-hkl-private.synopsis" class="shortcut">Top</a>
-                   | 
-                  <a href="#hkl-hkl-pseudoaxis-common-hkl-private.description" class="shortcut">Description</a>
-</td></tr>
-</table>
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts">
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+                  <a href="#hkl-hkl-pseudoaxis-common-hkl-private.description" class="shortcut">Description</a></span>
+</td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="p" href="hkl-hkl-pseudoaxis-common-eulerians-private.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="hkl-hkl-pseudoaxis-common-psi-private.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
 <div class="refentry">
 <a name="hkl-hkl-pseudoaxis-common-hkl-private"></a><div class="titlepage"></div>
 <div class="refnamediv"><table width="100%"><tr>
@@ -33,121 +29,179 @@
 <h2><span class="refentrytitle"><a name="hkl-hkl-pseudoaxis-common-hkl-private.top_of_page"></a>hkl-pseudoaxis-common-hkl-private</span></h2>
 <p>hkl-pseudoaxis-common-hkl-private</p>
 </td>
-<td valign="top" align="right"></td>
+<td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
-<div class="refsynopsisdiv">
-<a name="hkl-hkl-pseudoaxis-common-hkl-private.synopsis"></a><h2>Synopsis</h2>
-<pre class="synopsis">#define             <a class="link" href="hkl-hkl-pseudoaxis-common-hkl-private.html#CONSTANT-PARAMETER:CAPS" title="CONSTANT_PARAMETER()">CONSTANT_PARAMETER</a>                  (_name)
-#define             <a class="link" href="hkl-hkl-pseudoaxis-common-hkl-private.html#HKL-MODE-OPERATIONS-HKL-DEFAULTS:CAPS" title="HKL_MODE_OPERATIONS_HKL_DEFAULTS">HKL_MODE_OPERATIONS_HKL_DEFAULTS</a>
-struct              <a class="link" href="hkl-hkl-pseudoaxis-common-hkl-private.html#HklEngineHkl" title="struct HklEngineHkl">HklEngineHkl</a>;
-#define             <a class="link" href="hkl-hkl-pseudoaxis-common-hkl-private.html#PSI-CONSTANT-PARAMETERS:CAPS" title="PSI_CONSTANT_PARAMETERS()">PSI_CONSTANT_PARAMETERS</a>             (_h2,
-                                                         _k2,
-                                                         _l2,
-                                                         _psi)
-<span class="returnvalue">int</span>                 <a class="link" href="hkl-hkl-pseudoaxis-common-hkl-private.html#RUBh-minus-Q" title="RUBh_minus_Q ()">RUBh_minus_Q</a>                        (<em class="parameter"><code><span class="type">double</span> const x[]</code></em>,
-                                                         <em class="parameter"><code><span class="type">void</span> *params</code></em>,
-                                                         <em class="parameter"><code><span class="type">double</span> f[]</code></em>);
-<a class="link" href="hkl-hkl.html#HklEngine" title="HklEngine"><span class="returnvalue">HklEngine</span></a> *         <a class="link" href="hkl-hkl-pseudoaxis-common-hkl-private.html#hkl-engine-hkl-new" title="hkl_engine_hkl_new ()">hkl_engine_hkl_new</a>                  (<em class="parameter"><code><a class="link" href="hkl-hkl.html#HklEngineList" title="HklEngineList"><span class="type">HklEngineList</span></a> *engines</code></em>);
-<span class="returnvalue">int</span>                 <a class="link" href="hkl-hkl-pseudoaxis-common-hkl-private.html#hkl-mode-get-hkl-real" title="hkl_mode_get_hkl_real ()">hkl_mode_get_hkl_real</a>               (<em class="parameter"><code><a class="link" href="hkl-hkl-pseudoaxis-private.html#HklMode" title="struct HklMode"><span class="type">HklMode</span></a> *self</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="hkl-hkl.html#HklEngine" title="HklEngine"><span class="type">HklEngine</span></a> *engine</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="hkl-hkl.html#HklGeometry" title="HklGeometry"><span class="type">HklGeometry</span></a> *geometry</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="hkl-hkl.html#HklDetector" title="HklDetector"><span class="type">HklDetector</span></a> *detector</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="hkl-hkl.html#HklSample" title="HklSample"><span class="type">HklSample</span></a> *sample</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);
-<span class="returnvalue">int</span>                 <a class="link" href="hkl-hkl-pseudoaxis-common-hkl-private.html#hkl-mode-initialized-set-psi-constant-vertical-real" title="hkl_mode_initialized_set_psi_constant_vertical_real ()">hkl_mode_initialized_set_psi_constant_vertical_real</a>
-                                                        (<em class="parameter"><code><a class="link" href="hkl-hkl-pseudoaxis-private.html#HklMode" title="struct HklMode"><span class="type">HklMode</span></a> *base</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="hkl-hkl.html#HklEngine" title="HklEngine"><span class="type">HklEngine</span></a> *engine</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="hkl-hkl.html#HklGeometry" title="HklGeometry"><span class="type">HklGeometry</span></a> *geometry</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="hkl-hkl.html#HklDetector" title="HklDetector"><span class="type">HklDetector</span></a> *detector</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="hkl-hkl.html#HklSample" title="HklSample"><span class="type">HklSample</span></a> *sample</code></em>,
-                                                         <em class="parameter"><code><span class="type">int</span> initialized</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);
-<span class="returnvalue">int</span>                 <a class="link" href="hkl-hkl-pseudoaxis-common-hkl-private.html#hkl-mode-set-hkl-real" title="hkl_mode_set_hkl_real ()">hkl_mode_set_hkl_real</a>               (<em class="parameter"><code><a class="link" href="hkl-hkl-pseudoaxis-private.html#HklMode" title="struct HklMode"><span class="type">HklMode</span></a> *self</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="hkl-hkl.html#HklEngine" title="HklEngine"><span class="type">HklEngine</span></a> *engine</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="hkl-hkl.html#HklGeometry" title="HklGeometry"><span class="type">HklGeometry</span></a> *geometry</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="hkl-hkl.html#HklDetector" title="HklDetector"><span class="type">HklDetector</span></a> *detector</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="hkl-hkl.html#HklSample" title="HklSample"><span class="type">HklSample</span></a> *sample</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);
-</pre>
+<div class="refsect1">
+<a name="hkl-hkl-pseudoaxis-common-hkl-private.functions"></a><h2>Functions</h2>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="functions_return">
+<col class="functions_name">
+</colgroup>
+<tbody>
+<tr>
+<td class="function_type">
+<span class="returnvalue">int</span>
+</td>
+<td class="function_name">
+<a class="link" href="hkl-hkl-pseudoaxis-common-hkl-private.html#RUBh-minus-Q" title="RUBh_minus_Q ()">RUBh_minus_Q</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">int</span>
+</td>
+<td class="function_name">
+<a class="link" href="hkl-hkl-pseudoaxis-common-hkl-private.html#hkl-mode-get-hkl-real" title="hkl_mode_get_hkl_real ()">hkl_mode_get_hkl_real</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">int</span>
+</td>
+<td class="function_name">
+<a class="link" href="hkl-hkl-pseudoaxis-common-hkl-private.html#hkl-mode-set-hkl-real" title="hkl_mode_set_hkl_real ()">hkl_mode_set_hkl_real</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">int</span>
+</td>
+<td class="function_name">
+<a class="link" href="hkl-hkl-pseudoaxis-common-hkl-private.html#hkl-mode-initialized-set-psi-constant-vertical-real" title="hkl_mode_initialized_set_psi_constant_vertical_real ()">hkl_mode_initialized_set_psi_constant_vertical_real</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="hkl-hkl.html#HklEngine" title="HklEngine"><span class="returnvalue">HklEngine</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="hkl-hkl-pseudoaxis-common-hkl-private.html#hkl-engine-hkl-new" title="hkl_engine_hkl_new ()">hkl_engine_hkl_new</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name">
+<a class="link" href="hkl-hkl-pseudoaxis-common-hkl-private.html#CONSTANT-PARAMETER:CAPS" title="CONSTANT_PARAMETER()">CONSTANT_PARAMETER</a><span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name">
+<a class="link" href="hkl-hkl-pseudoaxis-common-hkl-private.html#PSI-CONSTANT-PARAMETERS:CAPS" title="PSI_CONSTANT_PARAMETERS()">PSI_CONSTANT_PARAMETERS</a><span class="c_punctuation">()</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="hkl-hkl-pseudoaxis-common-hkl-private.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="name">
+<col class="description">
+</colgroup>
+<tbody>
+<tr>
+<td class="datatype_keyword">struct</td>
+<td class="function_name"><a class="link" href="hkl-hkl-pseudoaxis-common-hkl-private.html#HklEngineHkl" title="struct HklEngineHkl">HklEngineHkl</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="hkl-hkl-pseudoaxis-common-hkl-private.html#HKL-MODE-OPERATIONS-HKL-DEFAULTS:CAPS" title="HKL_MODE_OPERATIONS_HKL_DEFAULTS">HKL_MODE_OPERATIONS_HKL_DEFAULTS</a></td>
+</tr>
+</tbody>
+</table></div>
 </div>
 <div class="refsect1">
 <a name="hkl-hkl-pseudoaxis-common-hkl-private.description"></a><h2>Description</h2>
 </div>
 <div class="refsect1">
-<a name="hkl-hkl-pseudoaxis-common-hkl-private.details"></a><h2>Details</h2>
+<a name="hkl-hkl-pseudoaxis-common-hkl-private.functions_details"></a><h2>Functions</h2>
 <div class="refsect2">
-<a name="CONSTANT-PARAMETER:CAPS"></a><h3>CONSTANT_PARAMETER()</h3>
-<pre class="programlisting">#define             CONSTANT_PARAMETER(_name)</pre>
+<a name="RUBh-minus-Q"></a><h3>RUBh_minus_Q ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+RUBh_minus_Q (<em class="parameter"><code><span class="type">double</span> const x[]</code></em>,
+              <em class="parameter"><code><span class="type">void</span> *params</code></em>,
+              <em class="parameter"><code><span class="type">double</span> f[]</code></em>);</pre>
+<div class="refsect3">
+<a name="id-1.2.21.6.2.4"></a><h4>Returns</h4>
+<p></p>
+</div>
 </div>
 <hr>
 <div class="refsect2">
-<a name="HKL-MODE-OPERATIONS-HKL-DEFAULTS:CAPS"></a><h3>HKL_MODE_OPERATIONS_HKL_DEFAULTS</h3>
-<pre class="programlisting">#define             HKL_MODE_OPERATIONS_HKL_DEFAULTS</pre>
+<a name="hkl-mode-get-hkl-real"></a><h3>hkl_mode_get_hkl_real ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+hkl_mode_get_hkl_real (<em class="parameter"><code><a class="link" href="hkl-hkl-pseudoaxis-private.html#HklMode" title="struct HklMode"><span class="type">HklMode</span></a> *self</code></em>,
+                       <em class="parameter"><code><a class="link" href="hkl-hkl.html#HklEngine" title="HklEngine"><span class="type">HklEngine</span></a> *engine</code></em>,
+                       <em class="parameter"><code><a class="link" href="hkl-hkl.html#HklGeometry" title="HklGeometry"><span class="type">HklGeometry</span></a> *geometry</code></em>,
+                       <em class="parameter"><code><a class="link" href="hkl-hkl.html#HklDetector" title="HklDetector"><span class="type">HklDetector</span></a> *detector</code></em>,
+                       <em class="parameter"><code><a class="link" href="hkl-hkl.html#HklSample" title="HklSample"><span class="type">HklSample</span></a> *sample</code></em>,
+                       <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
 </div>
 <hr>
 <div class="refsect2">
-<a name="HklEngineHkl"></a><h3>struct HklEngineHkl</h3>
-<pre class="programlisting">struct HklEngineHkl {
-	HklEngine engine;
-	HklParameter *h;
-	HklParameter *k;
-	HklParameter *l;
-};
-</pre>
+<a name="hkl-mode-set-hkl-real"></a><h3>hkl_mode_set_hkl_real ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+hkl_mode_set_hkl_real (<em class="parameter"><code><a class="link" href="hkl-hkl-pseudoaxis-private.html#HklMode" title="struct HklMode"><span class="type">HklMode</span></a> *self</code></em>,
+                       <em class="parameter"><code><a class="link" href="hkl-hkl.html#HklEngine" title="HklEngine"><span class="type">HklEngine</span></a> *engine</code></em>,
+                       <em class="parameter"><code><a class="link" href="hkl-hkl.html#HklGeometry" title="HklGeometry"><span class="type">HklGeometry</span></a> *geometry</code></em>,
+                       <em class="parameter"><code><a class="link" href="hkl-hkl.html#HklDetector" title="HklDetector"><span class="type">HklDetector</span></a> *detector</code></em>,
+                       <em class="parameter"><code><a class="link" href="hkl-hkl.html#HklSample" title="HklSample"><span class="type">HklSample</span></a> *sample</code></em>,
+                       <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
 </div>
 <hr>
 <div class="refsect2">
-<a name="PSI-CONSTANT-PARAMETERS:CAPS"></a><h3>PSI_CONSTANT_PARAMETERS()</h3>
-<pre class="programlisting">#define             PSI_CONSTANT_PARAMETERS(_h2, _k2, _l2, _psi)</pre>
+<a name="hkl-mode-initialized-set-psi-constant-vertical-real"></a><h3>hkl_mode_initialized_set_psi_constant_vertical_real ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+hkl_mode_initialized_set_psi_constant_vertical_real
+                               (<em class="parameter"><code><a class="link" href="hkl-hkl-pseudoaxis-private.html#HklMode" title="struct HklMode"><span class="type">HklMode</span></a> *base</code></em>,
+                                <em class="parameter"><code><a class="link" href="hkl-hkl.html#HklEngine" title="HklEngine"><span class="type">HklEngine</span></a> *engine</code></em>,
+                                <em class="parameter"><code><a class="link" href="hkl-hkl.html#HklGeometry" title="HklGeometry"><span class="type">HklGeometry</span></a> *geometry</code></em>,
+                                <em class="parameter"><code><a class="link" href="hkl-hkl.html#HklDetector" title="HklDetector"><span class="type">HklDetector</span></a> *detector</code></em>,
+                                <em class="parameter"><code><a class="link" href="hkl-hkl.html#HklSample" title="HklSample"><span class="type">HklSample</span></a> *sample</code></em>,
+                                <em class="parameter"><code><span class="type">int</span> initialized</code></em>,
+                                <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
 </div>
 <hr>
 <div class="refsect2">
-<a name="RUBh-minus-Q"></a><h3>RUBh_minus_Q ()</h3>
-<pre class="programlisting"><span class="returnvalue">int</span>                 RUBh_minus_Q                        (<em class="parameter"><code><span class="type">double</span> const x[]</code></em>,
-                                                         <em class="parameter"><code><span class="type">void</span> *params</code></em>,
-                                                         <em class="parameter"><code><span class="type">double</span> f[]</code></em>);</pre>
+<a name="hkl-engine-hkl-new"></a><h3>hkl_engine_hkl_new ()</h3>
+<pre class="programlisting"><a class="link" href="hkl-hkl.html#HklEngine" title="HklEngine"><span class="returnvalue">HklEngine</span></a> *
+hkl_engine_hkl_new (<em class="parameter"><code><a class="link" href="hkl-hkl.html#HklEngineList" title="HklEngineList"><span class="type">HklEngineList</span></a> *engines</code></em>);</pre>
 </div>
 <hr>
 <div class="refsect2">
-<a name="hkl-engine-hkl-new"></a><h3>hkl_engine_hkl_new ()</h3>
-<pre class="programlisting"><a class="link" href="hkl-hkl.html#HklEngine" title="HklEngine"><span class="returnvalue">HklEngine</span></a> *         hkl_engine_hkl_new                  (<em class="parameter"><code><a class="link" href="hkl-hkl.html#HklEngineList" title="HklEngineList"><span class="type">HklEngineList</span></a> *engines</code></em>);</pre>
+<a name="CONSTANT-PARAMETER:CAPS"></a><h3>CONSTANT_PARAMETER()</h3>
+<pre class="programlisting">#define             CONSTANT_PARAMETER(_name)</pre>
 </div>
 <hr>
 <div class="refsect2">
-<a name="hkl-mode-get-hkl-real"></a><h3>hkl_mode_get_hkl_real ()</h3>
-<pre class="programlisting"><span class="returnvalue">int</span>                 hkl_mode_get_hkl_real               (<em class="parameter"><code><a class="link" href="hkl-hkl-pseudoaxis-private.html#HklMode" title="struct HklMode"><span class="type">HklMode</span></a> *self</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="hkl-hkl.html#HklEngine" title="HklEngine"><span class="type">HklEngine</span></a> *engine</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="hkl-hkl.html#HklGeometry" title="HklGeometry"><span class="type">HklGeometry</span></a> *geometry</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="hkl-hkl.html#HklDetector" title="HklDetector"><span class="type">HklDetector</span></a> *detector</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="hkl-hkl.html#HklSample" title="HklSample"><span class="type">HklSample</span></a> *sample</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
+<a name="PSI-CONSTANT-PARAMETERS:CAPS"></a><h3>PSI_CONSTANT_PARAMETERS()</h3>
+<pre class="programlisting">#define             PSI_CONSTANT_PARAMETERS(_h2, _k2, _l2, _psi)</pre>
 </div>
-<hr>
+</div>
+<div class="refsect1">
+<a name="hkl-hkl-pseudoaxis-common-hkl-private.other_details"></a><h2>Types and Values</h2>
 <div class="refsect2">
-<a name="hkl-mode-initialized-set-psi-constant-vertical-real"></a><h3>hkl_mode_initialized_set_psi_constant_vertical_real ()</h3>
-<pre class="programlisting"><span class="returnvalue">int</span>                 hkl_mode_initialized_set_psi_constant_vertical_real
-                                                        (<em class="parameter"><code><a class="link" href="hkl-hkl-pseudoaxis-private.html#HklMode" title="struct HklMode"><span class="type">HklMode</span></a> *base</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="hkl-hkl.html#HklEngine" title="HklEngine"><span class="type">HklEngine</span></a> *engine</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="hkl-hkl.html#HklGeometry" title="HklGeometry"><span class="type">HklGeometry</span></a> *geometry</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="hkl-hkl.html#HklDetector" title="HklDetector"><span class="type">HklDetector</span></a> *detector</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="hkl-hkl.html#HklSample" title="HklSample"><span class="type">HklSample</span></a> *sample</code></em>,
-                                                         <em class="parameter"><code><span class="type">int</span> initialized</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
+<a name="HklEngineHkl"></a><h3>struct HklEngineHkl</h3>
+<pre class="programlisting">struct HklEngineHkl {
+	HklEngine engine;
+	HklParameter *h;
+	HklParameter *k;
+	HklParameter *l;
+};
+</pre>
 </div>
 <hr>
 <div class="refsect2">
-<a name="hkl-mode-set-hkl-real"></a><h3>hkl_mode_set_hkl_real ()</h3>
-<pre class="programlisting"><span class="returnvalue">int</span>                 hkl_mode_set_hkl_real               (<em class="parameter"><code><a class="link" href="hkl-hkl-pseudoaxis-private.html#HklMode" title="struct HklMode"><span class="type">HklMode</span></a> *self</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="hkl-hkl.html#HklEngine" title="HklEngine"><span class="type">HklEngine</span></a> *engine</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="hkl-hkl.html#HklGeometry" title="HklGeometry"><span class="type">HklGeometry</span></a> *geometry</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="hkl-hkl.html#HklDetector" title="HklDetector"><span class="type">HklDetector</span></a> *detector</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="hkl-hkl.html#HklSample" title="HklSample"><span class="type">HklSample</span></a> *sample</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
+<a name="HKL-MODE-OPERATIONS-HKL-DEFAULTS:CAPS"></a><h3>HKL_MODE_OPERATIONS_HKL_DEFAULTS</h3>
+<pre class="programlisting">#define             HKL_MODE_OPERATIONS_HKL_DEFAULTS</pre>
 </div>
 </div>
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/Documentation/api/html/hkl-hkl-pseudoaxis-common-psi-private.html b/Documentation/api/html/hkl-hkl-pseudoaxis-common-psi-private.html
index ad19a6e..9506f3b 100644
--- a/Documentation/api/html/hkl-hkl-pseudoaxis-common-psi-private.html
+++ b/Documentation/api/html/hkl-hkl-pseudoaxis-common-psi-private.html
@@ -2,30 +2,26 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>hkl-pseudoaxis-common-psi-private</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<title>hkl Reference Manual: hkl-pseudoaxis-common-psi-private</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="hkl Reference Manual">
 <link rel="up" href="ch01.html" title="[Insert title here]">
 <link rel="prev" href="hkl-hkl-pseudoaxis-common-hkl-private.html" title="hkl-pseudoaxis-common-hkl-private">
 <link rel="next" href="hkl-hkl-pseudoaxis-common-q-private.html" title="hkl-pseudoaxis-common-q-private">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
-<tr valign="middle">
-<td><a accesskey="p" href="hkl-hkl-pseudoaxis-common-hkl-private.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">hkl Reference Manual</th>
-<td><a accesskey="n" href="hkl-hkl-pseudoaxis-common-q-private.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
-</tr>
-<tr><td colspan="5" class="shortcuts">
-<a href="#hkl-hkl-pseudoaxis-common-psi-private.synopsis" class="shortcut">Top</a>
-                   | 
-                  <a href="#hkl-hkl-pseudoaxis-common-psi-private.description" class="shortcut">Description</a>
-</td></tr>
-</table>
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts">
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+                  <a href="#hkl-hkl-pseudoaxis-common-psi-private.description" class="shortcut">Description</a></span>
+</td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="p" href="hkl-hkl-pseudoaxis-common-hkl-private.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="hkl-hkl-pseudoaxis-common-q-private.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
 <div class="refentry">
 <a name="hkl-hkl-pseudoaxis-common-psi-private"></a><div class="titlepage"></div>
 <div class="refnamediv"><table width="100%"><tr>
@@ -33,31 +29,74 @@
 <h2><span class="refentrytitle"><a name="hkl-hkl-pseudoaxis-common-psi-private.top_of_page"></a>hkl-pseudoaxis-common-psi-private</span></h2>
 <p>hkl-pseudoaxis-common-psi-private</p>
 </td>
-<td valign="top" align="right"></td>
+<td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
-<div class="refsynopsisdiv">
-<a name="hkl-hkl-pseudoaxis-common-psi-private.synopsis"></a><h2>Synopsis</h2>
-<pre class="synopsis">struct              <a class="link" href="hkl-hkl-pseudoaxis-common-psi-private.html#HklEnginePsi" title="struct HklEnginePsi">HklEnginePsi</a>;
-struct              <a class="link" href="hkl-hkl-pseudoaxis-common-psi-private.html#HklModePsi" title="struct HklModePsi">HklModePsi</a>;
-<a class="link" href="hkl-hkl.html#HklEngine" title="HklEngine"><span class="returnvalue">HklEngine</span></a> *         <a class="link" href="hkl-hkl-pseudoaxis-common-psi-private.html#hkl-engine-psi-new" title="hkl_engine_psi_new ()">hkl_engine_psi_new</a>                  (<em class="parameter"><code><a class="link" href="hkl-hkl.html#HklEngineList" title="HklEngineList"><span class="type">HklEngineList</span></a> *engines</code></em>);
-<a class="link" href="hkl-hkl-pseudoaxis-private.html#HklMode" title="struct HklMode"><span class="returnvalue">HklMode</span></a> *           <a class="link" href="hkl-hkl-pseudoaxis-common-psi-private.html#hkl-mode-psi-new" title="hkl_mode_psi_new ()">hkl_mode_psi_new</a>                    (<em class="parameter"><code>const <a class="link" href="hkl-hkl-pseudoaxis-auto-private.html#HklModeAutoInfo" title="struct HklModeAutoInfo"><span class="type">HklModeAutoInfo</span></a> *info</cod [...]
-</pre>
+<div class="refsect1">
+<a name="hkl-hkl-pseudoaxis-common-psi-private.functions"></a><h2>Functions</h2>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="functions_return">
+<col class="functions_name">
+</colgroup>
+<tbody>
+<tr>
+<td class="function_type">
+<a class="link" href="hkl-hkl-pseudoaxis-private.html#HklMode" title="struct HklMode"><span class="returnvalue">HklMode</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="hkl-hkl-pseudoaxis-common-psi-private.html#hkl-mode-psi-new" title="hkl_mode_psi_new ()">hkl_mode_psi_new</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="hkl-hkl.html#HklEngine" title="HklEngine"><span class="returnvalue">HklEngine</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="hkl-hkl-pseudoaxis-common-psi-private.html#hkl-engine-psi-new" title="hkl_engine_psi_new ()">hkl_engine_psi_new</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="hkl-hkl-pseudoaxis-common-psi-private.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="name">
+<col class="description">
+</colgroup>
+<tbody>
+<tr>
+<td class="datatype_keyword">struct</td>
+<td class="function_name"><a class="link" href="hkl-hkl-pseudoaxis-common-psi-private.html#HklModePsi" title="struct HklModePsi">HklModePsi</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword">struct</td>
+<td class="function_name"><a class="link" href="hkl-hkl-pseudoaxis-common-psi-private.html#HklEnginePsi" title="struct HklEnginePsi">HklEnginePsi</a></td>
+</tr>
+</tbody>
+</table></div>
 </div>
 <div class="refsect1">
 <a name="hkl-hkl-pseudoaxis-common-psi-private.description"></a><h2>Description</h2>
 </div>
 <div class="refsect1">
-<a name="hkl-hkl-pseudoaxis-common-psi-private.details"></a><h2>Details</h2>
+<a name="hkl-hkl-pseudoaxis-common-psi-private.functions_details"></a><h2>Functions</h2>
 <div class="refsect2">
-<a name="HklEnginePsi"></a><h3>struct HklEnginePsi</h3>
-<pre class="programlisting">struct HklEnginePsi {
-	HklEngine engine;
-	HklParameter *psi;
-};
-</pre>
+<a name="hkl-mode-psi-new"></a><h3>hkl_mode_psi_new ()</h3>
+<pre class="programlisting"><a class="link" href="hkl-hkl-pseudoaxis-private.html#HklMode" title="struct HklMode"><span class="returnvalue">HklMode</span></a> *
+hkl_mode_psi_new (<em class="parameter"><code>const <a class="link" href="hkl-hkl-pseudoaxis-auto-private.html#HklModeAutoInfo" title="struct HklModeAutoInfo"><span class="type">HklModeAutoInfo</span></a> *info</code></em>);</pre>
 </div>
 <hr>
 <div class="refsect2">
+<a name="hkl-engine-psi-new"></a><h3>hkl_engine_psi_new ()</h3>
+<pre class="programlisting"><a class="link" href="hkl-hkl.html#HklEngine" title="HklEngine"><span class="returnvalue">HklEngine</span></a> *
+hkl_engine_psi_new (<em class="parameter"><code><a class="link" href="hkl-hkl.html#HklEngineList" title="HklEngineList"><span class="type">HklEngineList</span></a> *engines</code></em>);</pre>
+</div>
+</div>
+<div class="refsect1">
+<a name="hkl-hkl-pseudoaxis-common-psi-private.other_details"></a><h2>Types and Values</h2>
+<div class="refsect2">
 <a name="HklModePsi"></a><h3>struct HklModePsi</h3>
 <pre class="programlisting">struct HklModePsi {
 	HklMode parent;
@@ -68,18 +107,17 @@ struct              <a class="link" href="hkl-hkl-pseudoaxis-common-psi-private.
 </div>
 <hr>
 <div class="refsect2">
-<a name="hkl-engine-psi-new"></a><h3>hkl_engine_psi_new ()</h3>
-<pre class="programlisting"><a class="link" href="hkl-hkl.html#HklEngine" title="HklEngine"><span class="returnvalue">HklEngine</span></a> *         hkl_engine_psi_new                  (<em class="parameter"><code><a class="link" href="hkl-hkl.html#HklEngineList" title="HklEngineList"><span class="type">HklEngineList</span></a> *engines</code></em>);</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="hkl-mode-psi-new"></a><h3>hkl_mode_psi_new ()</h3>
-<pre class="programlisting"><a class="link" href="hkl-hkl-pseudoaxis-private.html#HklMode" title="struct HklMode"><span class="returnvalue">HklMode</span></a> *           hkl_mode_psi_new                    (<em class="parameter"><code>const <a class="link" href="hkl-hkl-pseudoaxis-auto-private.html#HklModeAutoInfo" title="struct HklModeAutoInfo"><span class="type">HklModeAutoInfo</span></a> *info</code></em>);</pre>
+<a name="HklEnginePsi"></a><h3>struct HklEnginePsi</h3>
+<pre class="programlisting">struct HklEnginePsi {
+	HklEngine engine;
+	HklParameter *psi;
+};
+</pre>
 </div>
 </div>
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/Documentation/api/html/hkl-hkl-pseudoaxis-common-q-private.html b/Documentation/api/html/hkl-hkl-pseudoaxis-common-q-private.html
index 922ec9c..5b33108 100644
--- a/Documentation/api/html/hkl-hkl-pseudoaxis-common-q-private.html
+++ b/Documentation/api/html/hkl-hkl-pseudoaxis-common-q-private.html
@@ -2,30 +2,26 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>hkl-pseudoaxis-common-q-private</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<title>hkl Reference Manual: hkl-pseudoaxis-common-q-private</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="hkl Reference Manual">
 <link rel="up" href="ch01.html" title="[Insert title here]">
 <link rel="prev" href="hkl-hkl-pseudoaxis-common-psi-private.html" title="hkl-pseudoaxis-common-psi-private">
 <link rel="next" href="hkl-hkl-pseudoaxis-private.html" title="hkl-pseudoaxis-private">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
-<tr valign="middle">
-<td><a accesskey="p" href="hkl-hkl-pseudoaxis-common-psi-private.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">hkl Reference Manual</th>
-<td><a accesskey="n" href="hkl-hkl-pseudoaxis-private.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
-</tr>
-<tr><td colspan="5" class="shortcuts">
-<a href="#hkl-hkl-pseudoaxis-common-q-private.synopsis" class="shortcut">Top</a>
-                   | 
-                  <a href="#hkl-hkl-pseudoaxis-common-q-private.description" class="shortcut">Description</a>
-</td></tr>
-</table>
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts">
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+                  <a href="#hkl-hkl-pseudoaxis-common-q-private.description" class="shortcut">Description</a></span>
+</td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="p" href="hkl-hkl-pseudoaxis-common-psi-private.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="hkl-hkl-pseudoaxis-private.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
 <div class="refentry">
 <a name="hkl-hkl-pseudoaxis-common-q-private"></a><div class="titlepage"></div>
 <div class="refnamediv"><table width="100%"><tr>
@@ -33,44 +29,86 @@
 <h2><span class="refentrytitle"><a name="hkl-hkl-pseudoaxis-common-q-private.top_of_page"></a>hkl-pseudoaxis-common-q-private</span></h2>
 <p>hkl-pseudoaxis-common-q-private</p>
 </td>
-<td valign="top" align="right"></td>
+<td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
-<div class="refsynopsisdiv">
-<a name="hkl-hkl-pseudoaxis-common-q-private.synopsis"></a><h2>Synopsis</h2>
-<pre class="synopsis"><a class="link" href="hkl-hkl.html#HklEngine" title="HklEngine"><span class="returnvalue">HklEngine</span></a> *         <a class="link" href="hkl-hkl-pseudoaxis-common-q-private.html#hkl-engine-q2-new" title="hkl_engine_q2_new ()">hkl_engine_q2_new</a>                   (<em class="parameter"><code><a class="link" href="hkl-hkl.html#HklEngineList" title="HklEngineList"><span class="type">HklEngineList</span></a> *engines</code></em>);
-<a class="link" href="hkl-hkl.html#HklEngine" title="HklEngine"><span class="returnvalue">HklEngine</span></a> *         <a class="link" href="hkl-hkl-pseudoaxis-common-q-private.html#hkl-engine-q-new" title="hkl_engine_q_new ()">hkl_engine_q_new</a>                    (<em class="parameter"><code><a class="link" href="hkl-hkl.html#HklEngineList" title="HklEngineList"><span class="type">HklEngineList</span></a> *engines</code></em>);
-<a class="link" href="hkl-hkl.html#HklEngine" title="HklEngine"><span class="returnvalue">HklEngine</span></a> *         <a class="link" href="hkl-hkl-pseudoaxis-common-q-private.html#hkl-engine-qper-qpar-new" title="hkl_engine_qper_qpar_new ()">hkl_engine_qper_qpar_new</a>            (<em class="parameter"><code><a class="link" href="hkl-hkl.html#HklEngineList" title="HklEngineList"><span class="type">HklEngineList</span></a> *engines</code></em>);
-<span class="returnvalue">double</span>              <a class="link" href="hkl-hkl-pseudoaxis-common-q-private.html#qmax" title="qmax ()">qmax</a>                                (<em class="parameter"><code><span class="type">double</span> wavelength</code></em>);
-</pre>
+<div class="refsect1">
+<a name="hkl-hkl-pseudoaxis-common-q-private.functions"></a><h2>Functions</h2>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="functions_return">
+<col class="functions_name">
+</colgroup>
+<tbody>
+<tr>
+<td class="function_type">
+<span class="returnvalue">double</span>
+</td>
+<td class="function_name">
+<a class="link" href="hkl-hkl-pseudoaxis-common-q-private.html#qmax" title="qmax ()">qmax</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="hkl-hkl.html#HklEngine" title="HklEngine"><span class="returnvalue">HklEngine</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="hkl-hkl-pseudoaxis-common-q-private.html#hkl-engine-q-new" title="hkl_engine_q_new ()">hkl_engine_q_new</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="hkl-hkl.html#HklEngine" title="HklEngine"><span class="returnvalue">HklEngine</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="hkl-hkl-pseudoaxis-common-q-private.html#hkl-engine-q2-new" title="hkl_engine_q2_new ()">hkl_engine_q2_new</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="hkl-hkl.html#HklEngine" title="HklEngine"><span class="returnvalue">HklEngine</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="hkl-hkl-pseudoaxis-common-q-private.html#hkl-engine-qper-qpar-new" title="hkl_engine_qper_qpar_new ()">hkl_engine_qper_qpar_new</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+</tbody>
+</table></div>
 </div>
 <div class="refsect1">
 <a name="hkl-hkl-pseudoaxis-common-q-private.description"></a><h2>Description</h2>
 </div>
 <div class="refsect1">
-<a name="hkl-hkl-pseudoaxis-common-q-private.details"></a><h2>Details</h2>
+<a name="hkl-hkl-pseudoaxis-common-q-private.functions_details"></a><h2>Functions</h2>
 <div class="refsect2">
-<a name="hkl-engine-q2-new"></a><h3>hkl_engine_q2_new ()</h3>
-<pre class="programlisting"><a class="link" href="hkl-hkl.html#HklEngine" title="HklEngine"><span class="returnvalue">HklEngine</span></a> *         hkl_engine_q2_new                   (<em class="parameter"><code><a class="link" href="hkl-hkl.html#HklEngineList" title="HklEngineList"><span class="type">HklEngineList</span></a> *engines</code></em>);</pre>
+<a name="qmax"></a><h3>qmax ()</h3>
+<pre class="programlisting"><span class="returnvalue">double</span>
+qmax (<em class="parameter"><code><span class="type">double</span> wavelength</code></em>);</pre>
 </div>
 <hr>
 <div class="refsect2">
-<a name="hkl-engine-q-new"></a><h3>hkl_engine_q_new ()</h3>
-<pre class="programlisting"><a class="link" href="hkl-hkl.html#HklEngine" title="HklEngine"><span class="returnvalue">HklEngine</span></a> *         hkl_engine_q_new                    (<em class="parameter"><code><a class="link" href="hkl-hkl.html#HklEngineList" title="HklEngineList"><span class="type">HklEngineList</span></a> *engines</code></em>);</pre>
+<a name="hkl-engine-q-new"></a><h3>hkl_engine_q_new ()</h3>
+<pre class="programlisting"><a class="link" href="hkl-hkl.html#HklEngine" title="HklEngine"><span class="returnvalue">HklEngine</span></a> *
+hkl_engine_q_new (<em class="parameter"><code><a class="link" href="hkl-hkl.html#HklEngineList" title="HklEngineList"><span class="type">HklEngineList</span></a> *engines</code></em>);</pre>
 </div>
 <hr>
 <div class="refsect2">
-<a name="hkl-engine-qper-qpar-new"></a><h3>hkl_engine_qper_qpar_new ()</h3>
-<pre class="programlisting"><a class="link" href="hkl-hkl.html#HklEngine" title="HklEngine"><span class="returnvalue">HklEngine</span></a> *         hkl_engine_qper_qpar_new            (<em class="parameter"><code><a class="link" href="hkl-hkl.html#HklEngineList" title="HklEngineList"><span class="type">HklEngineList</span></a> *engines</code></em>);</pre>
+<a name="hkl-engine-q2-new"></a><h3>hkl_engine_q2_new ()</h3>
+<pre class="programlisting"><a class="link" href="hkl-hkl.html#HklEngine" title="HklEngine"><span class="returnvalue">HklEngine</span></a> *
+hkl_engine_q2_new (<em class="parameter"><code><a class="link" href="hkl-hkl.html#HklEngineList" title="HklEngineList"><span class="type">HklEngineList</span></a> *engines</code></em>);</pre>
 </div>
 <hr>
 <div class="refsect2">
-<a name="qmax"></a><h3>qmax ()</h3>
-<pre class="programlisting"><span class="returnvalue">double</span>              qmax                                (<em class="parameter"><code><span class="type">double</span> wavelength</code></em>);</pre>
+<a name="hkl-engine-qper-qpar-new"></a><h3>hkl_engine_qper_qpar_new ()</h3>
+<pre class="programlisting"><a class="link" href="hkl-hkl.html#HklEngine" title="HklEngine"><span class="returnvalue">HklEngine</span></a> *
+hkl_engine_qper_qpar_new (<em class="parameter"><code><a class="link" href="hkl-hkl.html#HklEngineList" title="HklEngineList"><span class="type">HklEngineList</span></a> *engines</code></em>);</pre>
 </div>
 </div>
+<div class="refsect1">
+<a name="hkl-hkl-pseudoaxis-common-q-private.other_details"></a><h2>Types and Values</h2>
+</div>
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/Documentation/api/html/hkl-hkl-pseudoaxis-private.html b/Documentation/api/html/hkl-hkl-pseudoaxis-private.html
index 4a3d6a9..4c31369 100644
--- a/Documentation/api/html/hkl-hkl-pseudoaxis-private.html
+++ b/Documentation/api/html/hkl-hkl-pseudoaxis-private.html
@@ -2,30 +2,26 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>hkl-pseudoaxis-private</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<title>hkl Reference Manual: hkl-pseudoaxis-private</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="hkl Reference Manual">
 <link rel="up" href="ch01.html" title="[Insert title here]">
 <link rel="prev" href="hkl-hkl-pseudoaxis-common-q-private.html" title="hkl-pseudoaxis-common-q-private">
 <link rel="next" href="hkl-hkl-quaternion-private.html" title="hkl-quaternion-private">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
-<tr valign="middle">
-<td><a accesskey="p" href="hkl-hkl-pseudoaxis-common-q-private.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">hkl Reference Manual</th>
-<td><a accesskey="n" href="hkl-hkl-quaternion-private.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
-</tr>
-<tr><td colspan="5" class="shortcuts">
-<a href="#hkl-hkl-pseudoaxis-private.synopsis" class="shortcut">Top</a>
-                   | 
-                  <a href="#hkl-hkl-pseudoaxis-private.description" class="shortcut">Description</a>
-</td></tr>
-</table>
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts">
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+                  <a href="#hkl-hkl-pseudoaxis-private.description" class="shortcut">Description</a></span>
+</td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="p" href="hkl-hkl-pseudoaxis-common-q-private.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="hkl-hkl-quaternion-private.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
 <div class="refentry">
 <a name="hkl-hkl-pseudoaxis-private"></a><div class="titlepage"></div>
 <div class="refnamediv"><table width="100%"><tr>
@@ -33,100 +29,269 @@
 <h2><span class="refentrytitle"><a name="hkl-hkl-pseudoaxis-private.top_of_page"></a>hkl-pseudoaxis-private</span></h2>
 <p>hkl-pseudoaxis-private</p>
 </td>
-<td valign="top" align="right"></td>
+<td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
-<div class="refsynopsisdiv">
-<a name="hkl-hkl-pseudoaxis-private.synopsis"></a><h2>Synopsis</h2>
-<pre class="synopsis">#define             <a class="link" href="hkl-hkl-pseudoaxis-private.html#HKL-ENGINE-ERROR:CAPS" title="HKL_ENGINE_ERROR">HKL_ENGINE_ERROR</a>
-#define             <a class="link" href="hkl-hkl-pseudoaxis-private.html#HKL-ENGINE-INFO:CAPS" title="HKL_ENGINE_INFO()">HKL_ENGINE_INFO</a>                     (_name,
-                                                         _pseudo_axes,
-                                                         _dependencies)
-#define             <a class="link" href="hkl-hkl-pseudoaxis-private.html#HKL-ENGINE-LIST-ERROR:CAPS" title="HKL_ENGINE_LIST_ERROR">HKL_ENGINE_LIST_ERROR</a>
-#define             <a class="link" href="hkl-hkl-pseudoaxis-private.html#HKL-ENGINE-OPERATIONS-DEFAULTS:CAPS" title="HKL_ENGINE_OPERATIONS_DEFAULTS">HKL_ENGINE_OPERATIONS_DEFAULTS</a>
-#define             <a class="link" href="hkl-hkl-pseudoaxis-private.html#HKL-MODE-INFO:CAPS" title="HKL_MODE_INFO()">HKL_MODE_INFO</a>                       (_name,
-                                                         _axes_r,
-                                                         _axes_w)
-#define             <a class="link" href="hkl-hkl-pseudoaxis-private.html#HKL-MODE-INFO-RO:CAPS" title="HKL_MODE_INFO_RO()">HKL_MODE_INFO_RO</a>                    (_name,
-                                                         _axes)
-#define             <a class="link" href="hkl-hkl-pseudoaxis-private.html#HKL-MODE-INFO-RO-WITH-PARAMS:CAPS" title="HKL_MODE_INFO_RO_WITH_PARAMS()">HKL_MODE_INFO_RO_WITH_PARAMS</a>        (_name,
-                                                         _axes,
-                                                         _parameters)
-#define             <a class="link" href="hkl-hkl-pseudoaxis-private.html#HKL-MODE-INFO-WITH-PARAMS:CAPS" title="HKL_MODE_INFO_WITH_PARAMS()">HKL_MODE_INFO_WITH_PARAMS</a>           (_name,
-                                                         _axes_r,
-                                                         _axes_w,
-                                                         _parameters)
-#define             <a class="link" href="hkl-hkl-pseudoaxis-private.html#HKL-MODE-OPERATIONS-DEFAULTS:CAPS" title="HKL_MODE_OPERATIONS_DEFAULTS">HKL_MODE_OPERATIONS_DEFAULTS</a>
-                    <a class="link" href="hkl-hkl.html#HklEngine" title="HklEngine">HklEngine</a>;
-enum                <a class="link" href="hkl-hkl-pseudoaxis-private.html#HklEngineError" title="enum HklEngineError">HklEngineError</a>;
-struct              <a class="link" href="hkl-hkl-pseudoaxis-private.html#HklEngineInfo" title="struct HklEngineInfo">HklEngineInfo</a>;
-                    <a class="link" href="hkl-hkl.html#HklEngineList" title="HklEngineList">HklEngineList</a>;
-enum                <a class="link" href="hkl-hkl-pseudoaxis-private.html#HklEngineListError" title="enum HklEngineListError">HklEngineListError</a>;
-struct              <a class="link" href="hkl-hkl-pseudoaxis-private.html#HklEngineOperations" title="struct HklEngineOperations">HklEngineOperations</a>;
-struct              <a class="link" href="hkl-hkl-pseudoaxis-private.html#HklMode" title="struct HklMode">HklMode</a>;
-struct              <a class="link" href="hkl-hkl-pseudoaxis-private.html#HklModeInfo" title="struct HklModeInfo">HklModeInfo</a>;
-struct              <a class="link" href="hkl-hkl-pseudoaxis-private.html#HklModeOperations" title="struct HklModeOperations">HklModeOperations</a>;
-HklParameter *      <a class="link" href="hkl-hkl-pseudoaxis-private.html#axis" title="axis">axis</a>;
-<span class="returnvalue">return</span>              <a class="link" href="hkl-darray.html#darray-item" title="darray_item ()">darray_item</a>                         ();
-typedef             <a class="link" href="hkl-hkl-pseudoaxis-private.html#darray-mode" title="darray_mode">darray_mode</a>;
-<span class="returnvalue">return</span>              <a class="link" href="hkl-hkl-geometry-private.html#g-quark-from-static-string" title="g_quark_from_static_string ()">g_quark_from_static_string</a>          ();
-uint                <a class="link" href="hkl-hkl-pseudoaxis-private.html#i" title="i">i</a>;
-HklMode *           <a class="link" href="hkl-hkl-pseudoaxis-auto-private.html#self" title="self">self</a>;
-</pre>
+<div class="refsect1">
+<a name="hkl-hkl-pseudoaxis-private.functions"></a><h2>Functions</h2>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="functions_return">
+<col class="functions_name">
+</colgroup>
+<tbody>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name">
+<a class="link" href="hkl-hkl-pseudoaxis-private.html#HKL-MODE-INFO-RO:CAPS" title="HKL_MODE_INFO_RO()">HKL_MODE_INFO_RO</a><span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name">
+<a class="link" href="hkl-hkl-pseudoaxis-private.html#HKL-MODE-INFO:CAPS" title="HKL_MODE_INFO()">HKL_MODE_INFO</a><span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name">
+<a class="link" href="hkl-hkl-pseudoaxis-private.html#HKL-MODE-INFO-RO-WITH-PARAMS:CAPS" title="HKL_MODE_INFO_RO_WITH_PARAMS()">HKL_MODE_INFO_RO_WITH_PARAMS</a><span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name">
+<a class="link" href="hkl-hkl-pseudoaxis-private.html#HKL-MODE-INFO-WITH-PARAMS:CAPS" title="HKL_MODE_INFO_WITH_PARAMS()">HKL_MODE_INFO_WITH_PARAMS</a><span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name">
+<a class="link" href="hkl-hkl-pseudoaxis-private.html#HKL-ENGINE-INFO:CAPS" title="HKL_ENGINE_INFO()">HKL_ENGINE_INFO</a><span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">return</span>
+</td>
+<td class="function_name">
+<a class="link" href="hkl-hkl-geometry-private.html#g-quark-from-static-string" title="g_quark_from_static_string ()">g_quark_from_static_string</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">return</span>
+</td>
+<td class="function_name">
+<a class="link" href="hkl-darray.html#darray-item" title="darray_item ()">darray_item</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="hkl-hkl-pseudoaxis-private.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="name">
+<col class="description">
+</colgroup>
+<tbody>
+<tr>
+<td class="typedef_keyword">typedef</td>
+<td class="function_name"><a class="link" href="hkl-hkl-pseudoaxis-private.html#darray-mode" title="darray_mode">darray_mode</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword">struct</td>
+<td class="function_name"><a class="link" href="hkl-hkl-pseudoaxis-private.html#HklModeInfo" title="struct HklModeInfo">HklModeInfo</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword">struct</td>
+<td class="function_name"><a class="link" href="hkl-hkl-pseudoaxis-private.html#HklModeOperations" title="struct HklModeOperations">HklModeOperations</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="hkl-hkl-pseudoaxis-private.html#HKL-MODE-OPERATIONS-DEFAULTS:CAPS" title="HKL_MODE_OPERATIONS_DEFAULTS">HKL_MODE_OPERATIONS_DEFAULTS</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword">struct</td>
+<td class="function_name"><a class="link" href="hkl-hkl-pseudoaxis-private.html#HklMode" title="struct HklMode">HklMode</a></td>
+</tr>
+<tr>
+<td class="variable_type">HklMode *</td>
+<td class="function_name"><a class="link" href="hkl-hkl-pseudoaxis-auto-private.html#self" title="self">self</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword">struct</td>
+<td class="function_name"><a class="link" href="hkl-hkl-pseudoaxis-private.html#HklEngineInfo" title="struct HklEngineInfo">HklEngineInfo</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword"> </td>
+<td class="function_name"><a class="link" href="hkl-hkl.html#HklEngine" title="HklEngine">HklEngine</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword"> </td>
+<td class="function_name"><a class="link" href="hkl-hkl.html#HklEngineList" title="HklEngineList">HklEngineList</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="hkl-hkl-pseudoaxis-private.html#HKL-ENGINE-ERROR:CAPS" title="HKL_ENGINE_ERROR">HKL_ENGINE_ERROR</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword">enum</td>
+<td class="function_name"><a class="link" href="hkl-hkl-pseudoaxis-private.html#HklEngineError" title="enum HklEngineError">HklEngineError</a></td>
+</tr>
+<tr>
+<td class="variable_type">uint </td>
+<td class="function_name"><a class="link" href="hkl-hkl-pseudoaxis-private.html#i" title="i">i</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword">struct</td>
+<td class="function_name"><a class="link" href="hkl-hkl-pseudoaxis-private.html#HklEngineOperations" title="struct HklEngineOperations">HklEngineOperations</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="hkl-hkl-pseudoaxis-private.html#HKL-ENGINE-OPERATIONS-DEFAULTS:CAPS" title="HKL_ENGINE_OPERATIONS_DEFAULTS">HKL_ENGINE_OPERATIONS_DEFAULTS</a></td>
+</tr>
+<tr>
+<td class="variable_type">HklParameter *</td>
+<td class="function_name"><a class="link" href="hkl-hkl-pseudoaxis-private.html#axis" title="axis">axis</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="hkl-hkl-pseudoaxis-private.html#HKL-ENGINE-LIST-ERROR:CAPS" title="HKL_ENGINE_LIST_ERROR">HKL_ENGINE_LIST_ERROR</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword">enum</td>
+<td class="function_name"><a class="link" href="hkl-hkl-pseudoaxis-private.html#HklEngineListError" title="enum HklEngineListError">HklEngineListError</a></td>
+</tr>
+</tbody>
+</table></div>
 </div>
 <div class="refsect1">
 <a name="hkl-hkl-pseudoaxis-private.description"></a><h2>Description</h2>
 </div>
 <div class="refsect1">
-<a name="hkl-hkl-pseudoaxis-private.details"></a><h2>Details</h2>
+<a name="hkl-hkl-pseudoaxis-private.functions_details"></a><h2>Functions</h2>
 <div class="refsect2">
-<a name="HKL-ENGINE-ERROR:CAPS"></a><h3>HKL_ENGINE_ERROR</h3>
-<pre class="programlisting">#define HKL_ENGINE_ERROR hkl_engine_error_quark ()
+<a name="HKL-MODE-INFO-RO:CAPS"></a><h3>HKL_MODE_INFO_RO()</h3>
+<pre class="programlisting">#define HKL_MODE_INFO_RO(_name, _axes) .name=_name, .axes_r=DARRAY(_axes)
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="HKL-MODE-INFO:CAPS"></a><h3>HKL_MODE_INFO()</h3>
+<pre class="programlisting">#define HKL_MODE_INFO(_name, _axes_r, _axes_w) HKL_MODE_INFO_RO((_name), (_axes_r)), .axes_w=DARRAY((_axes_w))
 </pre>
 </div>
 <hr>
 <div class="refsect2">
+<a name="HKL-MODE-INFO-RO-WITH-PARAMS:CAPS"></a><h3>HKL_MODE_INFO_RO_WITH_PARAMS()</h3>
+<pre class="programlisting">#define HKL_MODE_INFO_RO_WITH_PARAMS(_name, _axes, _parameters) HKL_MODE_INFO_RO((_name), (_axes)), .parameters=DARRAY(_parameters)
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="HKL-MODE-INFO-WITH-PARAMS:CAPS"></a><h3>HKL_MODE_INFO_WITH_PARAMS()</h3>
+<pre class="programlisting">#define             HKL_MODE_INFO_WITH_PARAMS(_name, _axes_r, _axes_w, _parameters)</pre>
+</div>
+<hr>
+<div class="refsect2">
 <a name="HKL-ENGINE-INFO:CAPS"></a><h3>HKL_ENGINE_INFO()</h3>
 <pre class="programlisting">#define             HKL_ENGINE_INFO(_name, _pseudo_axes, _dependencies)</pre>
 </div>
 <hr>
 <div class="refsect2">
-<a name="HKL-ENGINE-LIST-ERROR:CAPS"></a><h3>HKL_ENGINE_LIST_ERROR</h3>
-<pre class="programlisting">#define HKL_ENGINE_LIST_ERROR hkl_engine_list_error_quark ()
-</pre>
+<a name="g-quark-from-static-string"></a><h3>g_quark_from_static_string ()</h3>
+<pre class="programlisting"><span class="returnvalue">return</span>
+g_quark_from_static_string ();</pre>
 </div>
 <hr>
 <div class="refsect2">
-<a name="HKL-ENGINE-OPERATIONS-DEFAULTS:CAPS"></a><h3>HKL_ENGINE_OPERATIONS_DEFAULTS</h3>
-<pre class="programlisting">#define HKL_ENGINE_OPERATIONS_DEFAULTS .free=hkl_engine_free_real
+<a name="darray-item"></a><h3>darray_item ()</h3>
+<pre class="programlisting"><span class="returnvalue">return</span>
+darray_item ();</pre>
+</div>
+</div>
+<div class="refsect1">
+<a name="hkl-hkl-pseudoaxis-private.other_details"></a><h2>Types and Values</h2>
+<div class="refsect2">
+<a name="darray-mode"></a><h3>darray_mode</h3>
+<pre class="programlisting">typedef darray(HklMode *) darray_mode;
 </pre>
 </div>
 <hr>
 <div class="refsect2">
-<a name="HKL-MODE-INFO:CAPS"></a><h3>HKL_MODE_INFO()</h3>
-<pre class="programlisting">#define HKL_MODE_INFO(_name, _axes_r, _axes_w) HKL_MODE_INFO_RO((_name), (_axes_r)), .axes_w=DARRAY((_axes_w))
+<a name="HklModeInfo"></a><h3>struct HklModeInfo</h3>
+<pre class="programlisting">struct HklModeInfo {
+	const char *name;
+	const darray_string axes_r;
+	const darray_string axes_w;
+	const darray(const HklParameter) parameters;
+};
 </pre>
 </div>
 <hr>
 <div class="refsect2">
-<a name="HKL-MODE-INFO-RO:CAPS"></a><h3>HKL_MODE_INFO_RO()</h3>
-<pre class="programlisting">#define HKL_MODE_INFO_RO(_name, _axes) .name=_name, .axes_r=DARRAY(_axes)
+<a name="HklModeOperations"></a><h3>struct HklModeOperations</h3>
+<pre class="programlisting">struct HklModeOperations {
+	unsigned long capabilities;
+
+	void (* free)(HklMode *self);
+	int (* initialized_get)(const HklMode *self);
+	int (* initialized_set)(HklMode *self,
+				HklEngine *engine,
+				HklGeometry *geometry,
+				HklDetector *detector,
+				HklSample *sample,
+				int initialized,
+				GError **error);
+	int (* get)(HklMode *self,
+		    HklEngine *engine,
+		    HklGeometry *geometry,
+		    HklDetector *detector,
+		    HklSample *sample,
+		    GError **error);
+	int (* set)(HklMode *self,
+		    HklEngine *engine,
+		    HklGeometry *geometry,
+		    HklDetector *detector,
+		    HklSample *sample,
+		    GError **error);
+};
 </pre>
 </div>
 <hr>
 <div class="refsect2">
-<a name="HKL-MODE-INFO-RO-WITH-PARAMS:CAPS"></a><h3>HKL_MODE_INFO_RO_WITH_PARAMS()</h3>
-<pre class="programlisting">#define HKL_MODE_INFO_RO_WITH_PARAMS(_name, _axes, _parameters) HKL_MODE_INFO_RO((_name), (_axes)), .parameters=DARRAY(_parameters)
+<a name="HKL-MODE-OPERATIONS-DEFAULTS:CAPS"></a><h3>HKL_MODE_OPERATIONS_DEFAULTS</h3>
+<pre class="programlisting">#define             HKL_MODE_OPERATIONS_DEFAULTS</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="HklMode"></a><h3>struct HklMode</h3>
+<pre class="programlisting">struct HklMode {
+	const HklModeInfo *info;
+	const HklModeOperations *ops;
+	darray_parameter parameters;
+	darray_string parameters_names;
+	int initialized;
+};
 </pre>
 </div>
 <hr>
 <div class="refsect2">
-<a name="HKL-MODE-INFO-WITH-PARAMS:CAPS"></a><h3>HKL_MODE_INFO_WITH_PARAMS()</h3>
-<pre class="programlisting">#define             HKL_MODE_INFO_WITH_PARAMS(_name, _axes_r, _axes_w, _parameters)</pre>
+<a name="self"></a><h3>self</h3>
+<pre class="programlisting">	HklMode *self = NULL;
+</pre>
 </div>
 <hr>
 <div class="refsect2">
-<a name="HKL-MODE-OPERATIONS-DEFAULTS:CAPS"></a><h3>HKL_MODE_OPERATIONS_DEFAULTS</h3>
-<pre class="programlisting">#define             HKL_MODE_OPERATIONS_DEFAULTS</pre>
+<a name="HklEngineInfo"></a><h3>struct HklEngineInfo</h3>
+<pre class="programlisting">struct HklEngineInfo {
+	const char *name;
+	const darray(const HklParameter *) pseudo_axes;
+	unsigned int dependencies;
+};
+</pre>
 </div>
 <hr>
 <div class="refsect2">
@@ -149,32 +314,6 @@ HklMode *           <a class="link" href="hkl-hkl-pseudoaxis-auto-private.html#s
 </div>
 <hr>
 <div class="refsect2">
-<a name="HklEngineError"></a><h3>enum HklEngineError</h3>
-<pre class="programlisting">typedef enum {
-	HKL_ENGINE_ERROR_PSEUDO_AXIS_VALUES_GET, /* can not get the engine pseudo axes values */
-	HKL_ENGINE_ERROR_PSEUDO_AXIS_VALUES_SET, /* can not set the engine pseudo axes values */
-	HKL_ENGINE_ERROR_PSEUDO_AXIS_SET, /* can not set the pseudo axis */
-	HKL_ENGINE_ERROR_INITIALIZE, /* can not initialize the engine */
-	HKL_ENGINE_ERROR_SET, /* can not set the engine */
-	HKL_ENGINE_ERROR_GET, /* can not get the engine */
-	HKL_ENGINE_ERROR_PARAMETER_GET, /* can not get the parameter */
-	HKL_ENGINE_ERROR_PARAMETER_SET, /* can not set the parameter */
-	HKL_ENGINE_ERROR_CURRENT_MODE_SET, /* can not select the mode */
-} HklEngineError;
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="HklEngineInfo"></a><h3>struct HklEngineInfo</h3>
-<pre class="programlisting">struct HklEngineInfo {
-	const char *name;
-	const darray(const HklParameter *) pseudo_axes;
-	unsigned int dependencies;
-};
-</pre>
-</div>
-<hr>
-<div class="refsect2">
 <a name="HklEngineList"></a><h3>HklEngineList</h3>
 <pre class="programlisting">typedef struct {
 	_darray(HklEngine *);
@@ -188,72 +327,89 @@ HklMode *           <a class="link" href="hkl-hkl-pseudoaxis-auto-private.html#s
 </div>
 <hr>
 <div class="refsect2">
-<a name="HklEngineListError"></a><h3>enum HklEngineListError</h3>
-<pre class="programlisting">typedef enum {
-	HKL_ENGINE_LIST_ERROR_ENGINE_GET_BY_NAME, /* can not set this geometry */
-	HKL_ENGINE_LIST_ERROR_PSEUDO_AXIS_GET_BY_NAME, /* can not set this geometry */
-} HklEngineListError;
+<a name="HKL-ENGINE-ERROR:CAPS"></a><h3>HKL_ENGINE_ERROR</h3>
+<pre class="programlisting">#define HKL_ENGINE_ERROR hkl_engine_error_quark ()
 </pre>
 </div>
 <hr>
 <div class="refsect2">
-<a name="HklEngineOperations"></a><h3>struct HklEngineOperations</h3>
-<pre class="programlisting">struct HklEngineOperations {
-	void (*free)(HklEngine *self);
-};
-</pre>
+<a name="HklEngineError"></a><h3>enum HklEngineError</h3>
+<div class="refsect3">
+<a name="id-1.2.24.7.12.3"></a><h4>Members</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="300px" class="enum_members_name">
+<col class="enum_members_description">
+<col width="200px" class="enum_members_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="enum_member_name"><p><a name="HKL-ENGINE-ERROR-PSEUDO-AXIS-VALUES-GET:CAPS"></a>HKL_ENGINE_ERROR_PSEUDO_AXIS_VALUES_GET</p></td>
+<td> </td>
+<td> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="HKL-ENGINE-ERROR-PSEUDO-AXIS-VALUES-SET:CAPS"></a>HKL_ENGINE_ERROR_PSEUDO_AXIS_VALUES_SET</p></td>
+<td> </td>
+<td> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="HKL-ENGINE-ERROR-PSEUDO-AXIS-SET:CAPS"></a>HKL_ENGINE_ERROR_PSEUDO_AXIS_SET</p></td>
+<td> </td>
+<td> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="HKL-ENGINE-ERROR-INITIALIZE:CAPS"></a>HKL_ENGINE_ERROR_INITIALIZE</p></td>
+<td> </td>
+<td> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="HKL-ENGINE-ERROR-SET:CAPS"></a>HKL_ENGINE_ERROR_SET</p></td>
+<td> </td>
+<td> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="HKL-ENGINE-ERROR-GET:CAPS"></a>HKL_ENGINE_ERROR_GET</p></td>
+<td> </td>
+<td> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="HKL-ENGINE-ERROR-PARAMETER-GET:CAPS"></a>HKL_ENGINE_ERROR_PARAMETER_GET</p></td>
+<td> </td>
+<td> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="HKL-ENGINE-ERROR-PARAMETER-SET:CAPS"></a>HKL_ENGINE_ERROR_PARAMETER_SET</p></td>
+<td> </td>
+<td> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="HKL-ENGINE-ERROR-CURRENT-MODE-SET:CAPS"></a>HKL_ENGINE_ERROR_CURRENT_MODE_SET</p></td>
+<td> </td>
+<td> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
 </div>
 <hr>
 <div class="refsect2">
-<a name="HklMode"></a><h3>struct HklMode</h3>
-<pre class="programlisting">struct HklMode {
-	const HklModeInfo *info;
-	const HklModeOperations *ops;
-	darray_parameter parameters;
-	darray_string parameters_names;
-	int initialized;
-};
+<a name="i"></a><h3>i</h3>
+<pre class="programlisting">	uint i = 0;
 </pre>
 </div>
 <hr>
 <div class="refsect2">
-<a name="HklModeInfo"></a><h3>struct HklModeInfo</h3>
-<pre class="programlisting">struct HklModeInfo {
-	const char *name;
-	const darray_string axes_r;
-	const darray_string axes_w;
-	const darray(const HklParameter) parameters;
+<a name="HklEngineOperations"></a><h3>struct HklEngineOperations</h3>
+<pre class="programlisting">struct HklEngineOperations {
+	void (*free)(HklEngine *self);
 };
 </pre>
 </div>
 <hr>
 <div class="refsect2">
-<a name="HklModeOperations"></a><h3>struct HklModeOperations</h3>
-<pre class="programlisting">struct HklModeOperations {
-	unsigned long capabilities;
-
-	void (* free)(HklMode *self);
-	int (* initialized_get)(const HklMode *self);
-	int (* initialized_set)(HklMode *self,
-				HklEngine *engine,
-				HklGeometry *geometry,
-				HklDetector *detector,
-				HklSample *sample,
-				int initialized,
-				GError **error);
-	int (* get)(HklMode *self,
-		    HklEngine *engine,
-		    HklGeometry *geometry,
-		    HklDetector *detector,
-		    HklSample *sample,
-		    GError **error);
-	int (* set)(HklMode *self,
-		    HklEngine *engine,
-		    HklGeometry *geometry,
-		    HklDetector *detector,
-		    HklSample *sample,
-		    GError **error);
-};
+<a name="HKL-ENGINE-OPERATIONS-DEFAULTS:CAPS"></a><h3>HKL_ENGINE_OPERATIONS_DEFAULTS</h3>
+<pre class="programlisting">#define HKL_ENGINE_OPERATIONS_DEFAULTS .free=hkl_engine_free_real
 </pre>
 </div>
 <hr>
@@ -264,36 +420,40 @@ HklMode *           <a class="link" href="hkl-hkl-pseudoaxis-auto-private.html#s
 </div>
 <hr>
 <div class="refsect2">
-<a name="darray-item"></a><h3>darray_item ()</h3>
-<pre class="programlisting"><span class="returnvalue">return</span>              darray_item                         ();</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="darray-mode"></a><h3>darray_mode</h3>
-<pre class="programlisting">typedef darray(HklMode *) darray_mode;
+<a name="HKL-ENGINE-LIST-ERROR:CAPS"></a><h3>HKL_ENGINE_LIST_ERROR</h3>
+<pre class="programlisting">#define HKL_ENGINE_LIST_ERROR hkl_engine_list_error_quark ()
 </pre>
 </div>
 <hr>
 <div class="refsect2">
-<a name="g-quark-from-static-string"></a><h3>g_quark_from_static_string ()</h3>
-<pre class="programlisting"><span class="returnvalue">return</span>              g_quark_from_static_string          ();</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="i"></a><h3>i</h3>
-<pre class="programlisting">	uint i = 0;
-</pre>
+<a name="HklEngineListError"></a><h3>enum HklEngineListError</h3>
+<div class="refsect3">
+<a name="id-1.2.24.7.18.3"></a><h4>Members</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="300px" class="enum_members_name">
+<col class="enum_members_description">
+<col width="200px" class="enum_members_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="enum_member_name"><p><a name="HKL-ENGINE-LIST-ERROR-ENGINE-GET-BY-NAME:CAPS"></a>HKL_ENGINE_LIST_ERROR_ENGINE_GET_BY_NAME</p></td>
+<td> </td>
+<td> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="HKL-ENGINE-LIST-ERROR-PSEUDO-AXIS-GET-BY-NAME:CAPS"></a>HKL_ENGINE_LIST_ERROR_PSEUDO_AXIS_GET_BY_NAME</p></td>
+<td> </td>
+<td> </td>
+</tr>
+</tbody>
+</table></div>
 </div>
-<hr>
-<div class="refsect2">
-<a name="self"></a><h3>self</h3>
-<pre class="programlisting">	HklMode *self = NULL;
-</pre>
 </div>
 </div>
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/Documentation/api/html/hkl-hkl-quaternion-private.html b/Documentation/api/html/hkl-hkl-quaternion-private.html
index 0f05fb9..7c3c1d9 100644
--- a/Documentation/api/html/hkl-hkl-quaternion-private.html
+++ b/Documentation/api/html/hkl-hkl-quaternion-private.html
@@ -2,30 +2,26 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>hkl-quaternion-private</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<title>hkl Reference Manual: hkl-quaternion-private</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="hkl Reference Manual">
 <link rel="up" href="ch01.html" title="[Insert title here]">
 <link rel="prev" href="hkl-hkl-pseudoaxis-private.html" title="hkl-pseudoaxis-private">
 <link rel="next" href="hkl-hkl-sample-private.html" title="hkl-sample-private">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
-<tr valign="middle">
-<td><a accesskey="p" href="hkl-hkl-pseudoaxis-private.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">hkl Reference Manual</th>
-<td><a accesskey="n" href="hkl-hkl-sample-private.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
-</tr>
-<tr><td colspan="5" class="shortcuts">
-<a href="#hkl-hkl-quaternion-private.synopsis" class="shortcut">Top</a>
-                   | 
-                  <a href="#hkl-hkl-quaternion-private.description" class="shortcut">Description</a>
-</td></tr>
-</table>
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts">
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+                  <a href="#hkl-hkl-quaternion-private.description" class="shortcut">Description</a></span>
+</td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="p" href="hkl-hkl-pseudoaxis-private.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="hkl-hkl-sample-private.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
 <div class="refentry">
 <a name="hkl-hkl-quaternion-private"></a><div class="titlepage"></div>
 <div class="refnamediv"><table width="100%"><tr>
@@ -33,345 +29,519 @@
 <h2><span class="refentrytitle"><a name="hkl-hkl-quaternion-private.top_of_page"></a>hkl-quaternion-private</span></h2>
 <p>hkl-quaternion-private</p>
 </td>
-<td valign="top" align="right"></td>
+<td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
-<div class="refsynopsisdiv">
-<a name="hkl-hkl-quaternion-private.synopsis"></a><h2>Synopsis</h2>
-<pre class="synopsis"><span class="returnvalue">int</span>                 <a class="link" href="hkl-hkl-quaternion-private.html#hkl-quaternion-cmp" title="hkl_quaternion_cmp ()">hkl_quaternion_cmp</a>                  (<em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklQuaternion" title="struct HklQuaternion"><span class="type">HklQuaternion</span></a> *self</code></em>,
-                                                         <em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklQuaternion" title="struct HklQuaternion"><span class="type">HklQuaternion</span></a> *q</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="hkl-hkl-quaternion-private.html#hkl-quaternion-conjugate" title="hkl_quaternion_conjugate ()">hkl_quaternion_conjugate</a>            (<em class="parameter"><code><a class="link" href="hkl-hkl.html#HklQuaternion" title="struct HklQuaternion"><span class="type">HklQuaternion</span></a> *self</code></em>);
-<a class="link" href="hkl-hkl.html#HklQuaternion" title="struct HklQuaternion"><span class="returnvalue">HklQuaternion</span></a> *     <a class="link" href="hkl-hkl-quaternion-private.html#hkl-quaternion-dup" title="hkl_quaternion_dup ()">hkl_quaternion_dup</a>                  (<em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklQuaternion" title="struct HklQuaternion"><span class="type">HklQuaternion</span></a> *self</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="hkl-hkl-quaternion-private.html#hkl-quaternion-fprintf" title="hkl_quaternion_fprintf ()">hkl_quaternion_fprintf</a>              (<em class="parameter"><code><span class="type">FILE</span> *file</code></em>,
-                                                         <em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklQuaternion" title="struct HklQuaternion"><span class="type">HklQuaternion</span></a> *self</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="hkl-hkl-quaternion-private.html#hkl-quaternion-free" title="hkl_quaternion_free ()">hkl_quaternion_free</a>                 (<em class="parameter"><code><a class="link" href="hkl-hkl.html#HklQuaternion" title="struct HklQuaternion"><span class="type">HklQuaternion</span></a> *self</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="hkl-hkl-quaternion-private.html#hkl-quaternion-init" title="hkl_quaternion_init ()">hkl_quaternion_init</a>                 (<em class="parameter"><code><a class="link" href="hkl-hkl.html#HklQuaternion" title="struct HklQuaternion"><span class="type">HklQuaternion</span></a> *self</code></em>,
-                                                         <em class="parameter"><code><span class="type">double</span> a</code></em>,
-                                                         <em class="parameter"><code><span class="type">double</span> b</code></em>,
-                                                         <em class="parameter"><code><span class="type">double</span> c</code></em>,
-                                                         <em class="parameter"><code><span class="type">double</span> d</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="hkl-hkl-quaternion-private.html#hkl-quaternion-init-from-angle-and-axe" title="hkl_quaternion_init_from_angle_and_axe ()">hkl_quaternion_init_from_angle_and_axe</a>
-                                                        (<em class="parameter"><code><a class="link" href="hkl-hkl.html#HklQuaternion" title="struct HklQuaternion"><span class="type">HklQuaternion</span></a> *self</code></em>,
-                                                         <em class="parameter"><code><span class="type">double</span> angle</code></em>,
-                                                         <em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> *v</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="hkl-hkl-quaternion-private.html#hkl-quaternion-init-from-vector" title="hkl_quaternion_init_from_vector ()">hkl_quaternion_init_from_vector</a>     (<em class="parameter"><code><a class="link" href="hkl-hkl.html#HklQuaternion" title="struct HklQuaternion"><span class="type">HklQuaternion</span></a> *self</code></em>,
-                                                         <em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> *v</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="hkl-hkl-quaternion-private.html#hkl-quaternion-minus-quaternion" title="hkl_quaternion_minus_quaternion ()">hkl_quaternion_minus_quaternion</a>     (<em class="parameter"><code><a class="link" href="hkl-hkl.html#HklQuaternion" title="struct HklQuaternion"><span class="type">HklQuaternion</span></a> *self</code></em>,
-                                                         <em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklQuaternion" title="struct HklQuaternion"><span class="type">HklQuaternion</span></a> *q</code></em>);
-<span class="returnvalue">double</span>              <a class="link" href="hkl-hkl-quaternion-private.html#hkl-quaternion-norm2" title="hkl_quaternion_norm2 ()">hkl_quaternion_norm2</a>                (<em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklQuaternion" title="struct HklQuaternion"><span class="type">HklQuaternion</span></a> *self</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="hkl-hkl-quaternion-private.html#hkl-quaternion-times-quaternion" title="hkl_quaternion_times_quaternion ()">hkl_quaternion_times_quaternion</a>     (<em class="parameter"><code><a class="link" href="hkl-hkl.html#HklQuaternion" title="struct HklQuaternion"><span class="type">HklQuaternion</span></a> *self</code></em>,
-                                                         <em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklQuaternion" title="struct HklQuaternion"><span class="type">HklQuaternion</span></a> *q</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="hkl-hkl-quaternion-private.html#hkl-quaternion-to-angle-and-axe" title="hkl_quaternion_to_angle_and_axe ()">hkl_quaternion_to_angle_and_axe</a>     (<em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklQuaternion" title="struct HklQuaternion"><span class="type">HklQuaternion</span></a> *self</code></em>,
-                                                         <em class="parameter"><code><span class="type">double</span> *angle</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> *v</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="hkl-hkl-quaternion-private.html#hkl-quaternion-to-matrix" title="hkl_quaternion_to_matrix ()">hkl_quaternion_to_matrix</a>            (<em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklQuaternion" title="struct HklQuaternion"><span class="type">HklQuaternion</span></a> *self</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="hkl-hkl.html#HklMatrix" title="HklMatrix"><span class="type">HklMatrix</span></a> *m</code></em>);
-</pre>
-</div>
-<div class="refsect1">
-<a name="hkl-hkl-quaternion-private.description"></a><h2>Description</h2>
-</div>
 <div class="refsect1">
-<a name="hkl-hkl-quaternion-private.details"></a><h2>Details</h2>
-<div class="refsect2">
-<a name="hkl-quaternion-cmp"></a><h3>hkl_quaternion_cmp ()</h3>
-<pre class="programlisting"><span class="returnvalue">int</span>                 hkl_quaternion_cmp                  (<em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklQuaternion" title="struct HklQuaternion"><span class="type">HklQuaternion</span></a> *self</code></em>,
-                                                         <em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklQuaternion" title="struct HklQuaternion"><span class="type">HklQuaternion</span></a> *q</code></em>);</pre>
-<p>
-compare two <a class="link" href="hkl-hkl.html#HklQuaternion" title="struct HklQuaternion"><span class="type">HklQuaternion</span></a>.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="hkl-hkl-quaternion-private.functions"></a><h2>Functions</h2>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="functions_return">
+<col class="functions_name">
+</colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
-<td>the first <a class="link" href="hkl-hkl.html#HklQuaternion" title="struct HklQuaternion"><span class="type">HklQuaternion</span></a>
+<td class="function_type">
+<a class="link" href="hkl-hkl.html#HklQuaternion" title="struct HklQuaternion"><span class="returnvalue">HklQuaternion</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="hkl-hkl-quaternion-private.html#hkl-quaternion-dup" title="hkl_quaternion_dup ()">hkl_quaternion_dup</a> <span class="c_punctuation">()</span>
 </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>q</code></em> :</span></p></td>
-<td>the second <a class="link" href="hkl-hkl.html#HklQuaternion" title="struct HklQuaternion"><span class="type">HklQuaternion</span></a>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="hkl-hkl-quaternion-private.html#hkl-quaternion-free" title="hkl_quaternion_free ()">hkl_quaternion_free</a> <span class="c_punctuation">()</span>
 </td>
 </tr>
 <tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><span class="type">TRUE</span></a> if both are equal, <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><span class="type">FALSE</span></a> otherwise.</td>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="hkl-hkl-quaternion-private.html#hkl-quaternion-init" title="hkl_quaternion_init ()">hkl_quaternion_init</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="hkl-hkl-quaternion-private.html#hkl-quaternion-init-from-vector" title="hkl_quaternion_init_from_vector ()">hkl_quaternion_init_from_vector</a> <span class="c_punctuation">()</span>
+</td>
 </tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="hkl-quaternion-conjugate"></a><h3>hkl_quaternion_conjugate ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                hkl_quaternion_conjugate            (<em class="parameter"><code><a class="link" href="hkl-hkl.html#HklQuaternion" title="struct HklQuaternion"><span class="type">HklQuaternion</span></a> *self</code></em>);</pre>
-<p>
-compute the conjugate of a quaternion
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody><tr>
-<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
-<td>the <a class="link" href="hkl-hkl.html#HklQuaternion" title="struct HklQuaternion"><span class="type">HklQuaternion</span></a> to conjugate</td>
-</tr></tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="hkl-quaternion-dup"></a><h3>hkl_quaternion_dup ()</h3>
-<pre class="programlisting"><a class="link" href="hkl-hkl.html#HklQuaternion" title="struct HklQuaternion"><span class="returnvalue">HklQuaternion</span></a> *     hkl_quaternion_dup                  (<em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklQuaternion" title="struct HklQuaternion"><span class="type">HklQuaternion</span></a> *self</code></em>);</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="hkl-quaternion-fprintf"></a><h3>hkl_quaternion_fprintf ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                hkl_quaternion_fprintf              (<em class="parameter"><code><span class="type">FILE</span> *file</code></em>,
-                                                         <em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklQuaternion" title="struct HklQuaternion"><span class="type">HklQuaternion</span></a> *self</code></em>);</pre>
-<p>
-print an <a class="link" href="hkl-hkl.html#HklQuaternion" title="struct HklQuaternion"><span class="type">HklQuaternion</span></a> into a FILE stream
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>file</code></em> :</span></p></td>
-<td>the file to send the <a class="link" href="hkl-hkl.html#HklQuaternion" title="struct HklQuaternion"><span class="type">HklQuaternion</span></a> into</td>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="hkl-hkl-quaternion-private.html#hkl-quaternion-init-from-angle-and-axe" title="hkl_quaternion_init_from_angle_and_axe ()">hkl_quaternion_init_from_angle_and_axe</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="hkl-hkl-quaternion-private.html#hkl-quaternion-fprintf" title="hkl_quaternion_fprintf ()">hkl_quaternion_fprintf</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">int</span>
+</td>
+<td class="function_name">
+<a class="link" href="hkl-hkl-quaternion-private.html#hkl-quaternion-cmp" title="hkl_quaternion_cmp ()">hkl_quaternion_cmp</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="hkl-hkl-quaternion-private.html#hkl-quaternion-minus-quaternion" title="hkl_quaternion_minus_quaternion ()">hkl_quaternion_minus_quaternion</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="hkl-hkl-quaternion-private.html#hkl-quaternion-times-quaternion" title="hkl_quaternion_times_quaternion ()">hkl_quaternion_times_quaternion</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">double</span>
+</td>
+<td class="function_name">
+<a class="link" href="hkl-hkl-quaternion-private.html#hkl-quaternion-norm2" title="hkl_quaternion_norm2 ()">hkl_quaternion_norm2</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="hkl-hkl-quaternion-private.html#hkl-quaternion-conjugate" title="hkl_quaternion_conjugate ()">hkl_quaternion_conjugate</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="hkl-hkl-quaternion-private.html#hkl-quaternion-to-matrix" title="hkl_quaternion_to_matrix ()">hkl_quaternion_to_matrix</a> <span class="c_punctuation">()</span>
+</td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
-<td>the <a class="link" href="hkl-hkl.html#HklQuaternion" title="struct HklQuaternion"><span class="type">HklQuaternion</span></a> to write into the file stream.</td>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="hkl-hkl-quaternion-private.html#hkl-quaternion-to-angle-and-axe" title="hkl_quaternion_to_angle_and_axe ()">hkl_quaternion_to_angle_and_axe</a> <span class="c_punctuation">()</span>
+</td>
 </tr>
 </tbody>
 </table></div>
 </div>
+<div class="refsect1">
+<a name="hkl-hkl-quaternion-private.description"></a><h2>Description</h2>
+</div>
+<div class="refsect1">
+<a name="hkl-hkl-quaternion-private.functions_details"></a><h2>Functions</h2>
+<div class="refsect2">
+<a name="hkl-quaternion-dup"></a><h3>hkl_quaternion_dup ()</h3>
+<pre class="programlisting"><a class="link" href="hkl-hkl.html#HklQuaternion" title="struct HklQuaternion"><span class="returnvalue">HklQuaternion</span></a> *
+hkl_quaternion_dup (<em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklQuaternion" title="struct HklQuaternion"><span class="type">HklQuaternion</span></a> *self</code></em>);</pre>
+<div class="refsect3">
+<a name="id-1.2.25.5.2.4"></a><h4>Returns</h4>
+<p></p>
+</div>
+</div>
 <hr>
 <div class="refsect2">
-<a name="hkl-quaternion-free"></a><h3>hkl_quaternion_free ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                hkl_quaternion_free                 (<em class="parameter"><code><a class="link" href="hkl-hkl.html#HklQuaternion" title="struct HklQuaternion"><span class="type">HklQuaternion</span></a> *self</code></em>);</pre>
+<a name="hkl-quaternion-free"></a><h3>hkl_quaternion_free ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+hkl_quaternion_free (<em class="parameter"><code><a class="link" href="hkl-hkl.html#HklQuaternion" title="struct HklQuaternion"><span class="type">HklQuaternion</span></a> *self</code></em>);</pre>
 </div>
 <hr>
 <div class="refsect2">
-<a name="hkl-quaternion-init"></a><h3>hkl_quaternion_init ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                hkl_quaternion_init                 (<em class="parameter"><code><a class="link" href="hkl-hkl.html#HklQuaternion" title="struct HklQuaternion"><span class="type">HklQuaternion</span></a> *self</code></em>,
-                                                         <em class="parameter"><code><span class="type">double</span> a</code></em>,
-                                                         <em class="parameter"><code><span class="type">double</span> b</code></em>,
-                                                         <em class="parameter"><code><span class="type">double</span> c</code></em>,
-                                                         <em class="parameter"><code><span class="type">double</span> d</code></em>);</pre>
-<p>
-initialize the four elements of an <a class="link" href="hkl-hkl.html#HklQuaternion" title="struct HklQuaternion"><span class="type">HklQuaternion</span></a>
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="hkl-quaternion-init"></a><h3>hkl_quaternion_init ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+hkl_quaternion_init (<em class="parameter"><code><a class="link" href="hkl-hkl.html#HklQuaternion" title="struct HklQuaternion"><span class="type">HklQuaternion</span></a> *self</code></em>,
+                     <em class="parameter"><code><span class="type">double</span> a</code></em>,
+                     <em class="parameter"><code><span class="type">double</span> b</code></em>,
+                     <em class="parameter"><code><span class="type">double</span> c</code></em>,
+                     <em class="parameter"><code><span class="type">double</span> d</code></em>);</pre>
+<p>initialize the four elements of an <a class="link" href="hkl-hkl.html#HklQuaternion" title="struct HklQuaternion"><span class="type">HklQuaternion</span></a></p>
+<div class="refsect3">
+<a name="id-1.2.25.5.4.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
-<td>the <a class="link" href="hkl-hkl.html#HklQuaternion" title="struct HklQuaternion"><span class="type">HklQuaternion</span></a> to initialize</td>
+<td class="parameter_name"><p>self</p></td>
+<td class="parameter_description"><p>the <a class="link" href="hkl-hkl.html#HklQuaternion" title="struct HklQuaternion"><span class="type">HklQuaternion</span></a> to initialize</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>a</code></em> :</span></p></td>
-<td>the 1st element value</td>
+<td class="parameter_name"><p>a</p></td>
+<td class="parameter_description"><p>the 1st element value</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>b</code></em> :</span></p></td>
-<td>the 2nd element value</td>
+<td class="parameter_name"><p>b</p></td>
+<td class="parameter_description"><p>the 2nd element value</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>c</code></em> :</span></p></td>
-<td>the 3rd element value</td>
+<td class="parameter_name"><p>c</p></td>
+<td class="parameter_description"><p>the 3rd element value</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>d</code></em> :</span></p></td>
-<td>the 4th element value</td>
+<td class="parameter_name"><p>d</p></td>
+<td class="parameter_description"><p>the 4th element value</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
 </div>
+</div>
 <hr>
 <div class="refsect2">
-<a name="hkl-quaternion-init-from-angle-and-axe"></a><h3>hkl_quaternion_init_from_angle_and_axe ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                hkl_quaternion_init_from_angle_and_axe
-                                                        (<em class="parameter"><code><a class="link" href="hkl-hkl.html#HklQuaternion" title="struct HklQuaternion"><span class="type">HklQuaternion</span></a> *self</code></em>,
-                                                         <em class="parameter"><code><span class="type">double</span> angle</code></em>,
-                                                         <em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> *v</code></em>);</pre>
-<p>
-initialize an <a class="link" href="hkl-hkl.html#HklQuaternion" title="struct HklQuaternion"><span class="type">HklQuaternion</span></a> from a vector and a angle.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="hkl-quaternion-init-from-vector"></a><h3>hkl_quaternion_init_from_vector ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+hkl_quaternion_init_from_vector (<em class="parameter"><code><a class="link" href="hkl-hkl.html#HklQuaternion" title="struct HklQuaternion"><span class="type">HklQuaternion</span></a> *self</code></em>,
+                                 <em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> *v</code></em>);</pre>
+<p>initialize an <a class="link" href="hkl-hkl.html#HklQuaternion" title="struct HklQuaternion"><span class="type">HklQuaternion</span></a> from an <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a></p>
+<div class="refsect3">
+<a name="id-1.2.25.5.5.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
-<td>the <a class="link" href="hkl-hkl.html#HklQuaternion" title="struct HklQuaternion"><span class="type">HklQuaternion</span></a> to set</td>
+<td class="parameter_name"><p>self</p></td>
+<td class="parameter_description"><p>the <a class="link" href="hkl-hkl.html#HklQuaternion" title="struct HklQuaternion"><span class="type">HklQuaternion</span></a> to set</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>angle</code></em> :</span></p></td>
-<td>the angles of the rotation</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>v</code></em> :</span></p></td>
-<td>the axe of rotation</td>
+<td class="parameter_name"><p>v</p></td>
+<td class="parameter_description"><p>the <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> used to set the self <a class="link" href="hkl-hkl.html#HklQuaternion" title="struct HklQuaternion"><span class="type">HklQuaternion</span></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
 </div>
+</div>
 <hr>
 <div class="refsect2">
-<a name="hkl-quaternion-init-from-vector"></a><h3>hkl_quaternion_init_from_vector ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                hkl_quaternion_init_from_vector     (<em class="parameter"><code><a class="link" href="hkl-hkl.html#HklQuaternion" title="struct HklQuaternion"><span class="type">HklQuaternion</span></a> *self</code></em>,
-                                                         <em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> *v</code></em>);</pre>
-<p>
-initialize an <a class="link" href="hkl-hkl.html#HklQuaternion" title="struct HklQuaternion"><span class="type">HklQuaternion</span></a> from an <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a>
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="hkl-quaternion-init-from-angle-and-axe"></a><h3>hkl_quaternion_init_from_angle_and_axe ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+hkl_quaternion_init_from_angle_and_axe
+                               (<em class="parameter"><code><a class="link" href="hkl-hkl.html#HklQuaternion" title="struct HklQuaternion"><span class="type">HklQuaternion</span></a> *self</code></em>,
+                                <em class="parameter"><code><span class="type">double</span> angle</code></em>,
+                                <em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> *v</code></em>);</pre>
+<p>initialize an <a class="link" href="hkl-hkl.html#HklQuaternion" title="struct HklQuaternion"><span class="type">HklQuaternion</span></a> from a vector and a angle.</p>
+<div class="refsect3">
+<a name="id-1.2.25.5.6.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
-<td>the <a class="link" href="hkl-hkl.html#HklQuaternion" title="struct HklQuaternion"><span class="type">HklQuaternion</span></a> to set</td>
+<td class="parameter_name"><p>self</p></td>
+<td class="parameter_description"><p>the <a class="link" href="hkl-hkl.html#HklQuaternion" title="struct HklQuaternion"><span class="type">HklQuaternion</span></a> to set</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>v</code></em> :</span></p></td>
-<td>the <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> used to set the self <a class="link" href="hkl-hkl.html#HklQuaternion" title="struct HklQuaternion"><span class="type">HklQuaternion</span></a>
-</td>
+<td class="parameter_name"><p>angle</p></td>
+<td class="parameter_description"><p>the angles of the rotation</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>v</p></td>
+<td class="parameter_description"><p>the axe of rotation</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
 </div>
+</div>
 <hr>
 <div class="refsect2">
-<a name="hkl-quaternion-minus-quaternion"></a><h3>hkl_quaternion_minus_quaternion ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                hkl_quaternion_minus_quaternion     (<em class="parameter"><code><a class="link" href="hkl-hkl.html#HklQuaternion" title="struct HklQuaternion"><span class="type">HklQuaternion</span></a> *self</code></em>,
-                                                         <em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklQuaternion" title="struct HklQuaternion"><span class="type">HklQuaternion</span></a> *q</code></em>);</pre>
-<p>
-substract two <a href="hkl-hkl.html#HklQuaternion"><span class="type">HklQuaternions</span></a>
-Todo: test
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="hkl-quaternion-fprintf"></a><h3>hkl_quaternion_fprintf ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+hkl_quaternion_fprintf (<em class="parameter"><code><span class="type">FILE</span> *file</code></em>,
+                        <em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklQuaternion" title="struct HklQuaternion"><span class="type">HklQuaternion</span></a> *self</code></em>);</pre>
+<p>print an <a class="link" href="hkl-hkl.html#HklQuaternion" title="struct HklQuaternion"><span class="type">HklQuaternion</span></a> into a FILE stream</p>
+<div class="refsect3">
+<a name="id-1.2.25.5.7.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
-<td>the <a class="link" href="hkl-hkl.html#HklQuaternion" title="struct HklQuaternion"><span class="type">HklQuaternion</span></a> to modify.</td>
+<td class="parameter_name"><p>file</p></td>
+<td class="parameter_description"><p>the file to send the <a class="link" href="hkl-hkl.html#HklQuaternion" title="struct HklQuaternion"><span class="type">HklQuaternion</span></a> into</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>q</code></em> :</span></p></td>
-<td>the <a class="link" href="hkl-hkl.html#HklQuaternion" title="struct HklQuaternion"><span class="type">HklQuaternion</span></a> to substract</td>
+<td class="parameter_name"><p>self</p></td>
+<td class="parameter_description"><p>the <a class="link" href="hkl-hkl.html#HklQuaternion" title="struct HklQuaternion"><span class="type">HklQuaternion</span></a> to write into the file stream.</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
 </div>
+</div>
 <hr>
 <div class="refsect2">
-<a name="hkl-quaternion-norm2"></a><h3>hkl_quaternion_norm2 ()</h3>
-<pre class="programlisting"><span class="returnvalue">double</span>              hkl_quaternion_norm2                (<em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklQuaternion" title="struct HklQuaternion"><span class="type">HklQuaternion</span></a> *self</code></em>);</pre>
-<p>
-compute the norm2 of an <a class="link" href="hkl-hkl.html#HklQuaternion" title="struct HklQuaternion"><span class="type">HklQuaternion</span></a>
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="hkl-quaternion-cmp"></a><h3>hkl_quaternion_cmp ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+hkl_quaternion_cmp (<em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklQuaternion" title="struct HklQuaternion"><span class="type">HklQuaternion</span></a> *self</code></em>,
+                    <em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklQuaternion" title="struct HklQuaternion"><span class="type">HklQuaternion</span></a> *q</code></em>);</pre>
+<p>compare two <a class="link" href="hkl-hkl.html#HklQuaternion" title="struct HklQuaternion"><span class="type">HklQuaternion</span></a>.</p>
+<div class="refsect3">
+<a name="id-1.2.25.5.8.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
-<td>the quaternion use to compute the norm</td>
+<td class="parameter_name"><p>self</p></td>
+<td class="parameter_description"><p>the first <a class="link" href="hkl-hkl.html#HklQuaternion" title="struct HklQuaternion"><span class="type">HklQuaternion</span></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>the self <span class="type">hklquaternion</span> norm</td>
+<td class="parameter_name"><p>q</p></td>
+<td class="parameter_description"><p>the second <a class="link" href="hkl-hkl.html#HklQuaternion" title="struct HklQuaternion"><span class="type">HklQuaternion</span></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
 </div>
+<div class="refsect3">
+<a name="id-1.2.25.5.8.6"></a><h4>Returns</h4>
+<p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><span class="type">TRUE</span></a> if both are equal, <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><span class="type">FALSE</span></a> otherwise.</p>
+<p></p>
+</div>
+</div>
 <hr>
 <div class="refsect2">
-<a name="hkl-quaternion-times-quaternion"></a><h3>hkl_quaternion_times_quaternion ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                hkl_quaternion_times_quaternion     (<em class="parameter"><code><a class="link" href="hkl-hkl.html#HklQuaternion" title="struct HklQuaternion"><span class="type">HklQuaternion</span></a> *self</code></em>,
-                                                         <em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklQuaternion" title="struct HklQuaternion"><span class="type">HklQuaternion</span></a> *q</code></em>);</pre>
-<p>
-multiply two quaternions
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="hkl-quaternion-minus-quaternion"></a><h3>hkl_quaternion_minus_quaternion ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+hkl_quaternion_minus_quaternion (<em class="parameter"><code><a class="link" href="hkl-hkl.html#HklQuaternion" title="struct HklQuaternion"><span class="type">HklQuaternion</span></a> *self</code></em>,
+                                 <em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklQuaternion" title="struct HklQuaternion"><span class="type">HklQuaternion</span></a> *q</code></em>);</pre>
+<p>substract two <a href="hkl-hkl.html#HklQuaternion"><span class="type">HklQuaternions</span></a>
+Todo: test</p>
+<div class="refsect3">
+<a name="id-1.2.25.5.9.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
-<td>the <a class="link" href="hkl-hkl.html#HklQuaternion" title="struct HklQuaternion"><span class="type">HklQuaternion</span></a> to modify</td>
+<td class="parameter_name"><p>self</p></td>
+<td class="parameter_description"><p>the <a class="link" href="hkl-hkl.html#HklQuaternion" title="struct HklQuaternion"><span class="type">HklQuaternion</span></a> to modify.</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>q</code></em> :</span></p></td>
-<td>the <a class="link" href="hkl-hkl.html#HklQuaternion" title="struct HklQuaternion"><span class="type">HklQuaternion</span></a> to multiply by</td>
+<td class="parameter_name"><p>q</p></td>
+<td class="parameter_description"><p>the <a class="link" href="hkl-hkl.html#HklQuaternion" title="struct HklQuaternion"><span class="type">HklQuaternion</span></a> to substract</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
 </div>
+</div>
 <hr>
 <div class="refsect2">
-<a name="hkl-quaternion-to-angle-and-axe"></a><h3>hkl_quaternion_to_angle_and_axe ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                hkl_quaternion_to_angle_and_axe     (<em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklQuaternion" title="struct HklQuaternion"><span class="type">HklQuaternion</span></a> *self</code></em>,
-                                                         <em class="parameter"><code><span class="type">double</span> *angle</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> *v</code></em>);</pre>
-<p>
-compute the axe and angle of the unitary quaternion angle [-pi, pi]
-if q is the (1, 0, 0, 0) quaternion return the (0,0,0) axe and a 0 angle
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="hkl-quaternion-times-quaternion"></a><h3>hkl_quaternion_times_quaternion ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+hkl_quaternion_times_quaternion (<em class="parameter"><code><a class="link" href="hkl-hkl.html#HklQuaternion" title="struct HklQuaternion"><span class="type">HklQuaternion</span></a> *self</code></em>,
+                                 <em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklQuaternion" title="struct HklQuaternion"><span class="type">HklQuaternion</span></a> *q</code></em>);</pre>
+<p>multiply two quaternions</p>
+<div class="refsect3">
+<a name="id-1.2.25.5.10.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
-<td>The <a class="link" href="hkl-hkl.html#HklQuaternion" title="struct HklQuaternion"><span class="type">HklQuaternion</span></a> use to compute the angle and the roation axis.</td>
+<td class="parameter_name"><p>self</p></td>
+<td class="parameter_description"><p>the <a class="link" href="hkl-hkl.html#HklQuaternion" title="struct HklQuaternion"><span class="type">HklQuaternion</span></a> to modify</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>angle</code></em> :</span></p></td>
-<td>the returned angle of the rotation.</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>v</code></em> :</span></p></td>
-<td>the returned axis of the rotation.</td>
+<td class="parameter_name"><p>q</p></td>
+<td class="parameter_description"><p>the <a class="link" href="hkl-hkl.html#HklQuaternion" title="struct HklQuaternion"><span class="type">HklQuaternion</span></a> to multiply by</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
 </div>
+</div>
 <hr>
 <div class="refsect2">
-<a name="hkl-quaternion-to-matrix"></a><h3>hkl_quaternion_to_matrix ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                hkl_quaternion_to_matrix            (<em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklQuaternion" title="struct HklQuaternion"><span class="type">HklQuaternion</span></a> *self</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="hkl-hkl.html#HklMatrix" title="HklMatrix"><span class="type">HklMatrix</span></a> *m</code></em>);</pre>
-<p>
-Compute the rotation matrix of a Quaternion.
-</p>
-<p>
-compute the rotation matrix corresponding to the unitary quaternion.
-\f$ q = a + b \cdot i + c \cdot j + d \cdot k \f$
-</p>
-<p>
-\f$
+<a name="hkl-quaternion-norm2"></a><h3>hkl_quaternion_norm2 ()</h3>
+<pre class="programlisting"><span class="returnvalue">double</span>
+hkl_quaternion_norm2 (<em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklQuaternion" title="struct HklQuaternion"><span class="type">HklQuaternion</span></a> *self</code></em>);</pre>
+<p>compute the norm2 of an <a class="link" href="hkl-hkl.html#HklQuaternion" title="struct HklQuaternion"><span class="type">HklQuaternion</span></a></p>
+<div class="refsect3">
+<a name="id-1.2.25.5.11.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>self</p></td>
+<td class="parameter_description"><p>the quaternion use to compute the norm</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="id-1.2.25.5.11.6"></a><h4>Returns</h4>
+<p> the self <span class="type">hklquaternion</span> norm</p>
+<p></p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="hkl-quaternion-conjugate"></a><h3>hkl_quaternion_conjugate ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+hkl_quaternion_conjugate (<em class="parameter"><code><a class="link" href="hkl-hkl.html#HklQuaternion" title="struct HklQuaternion"><span class="type">HklQuaternion</span></a> *self</code></em>);</pre>
+<p>compute the conjugate of a quaternion</p>
+<div class="refsect3">
+<a name="id-1.2.25.5.12.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>self</p></td>
+<td class="parameter_description"><p>the <a class="link" href="hkl-hkl.html#HklQuaternion" title="struct HklQuaternion"><span class="type">HklQuaternion</span></a> to conjugate</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="hkl-quaternion-to-matrix"></a><h3>hkl_quaternion_to_matrix ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+hkl_quaternion_to_matrix (<em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklQuaternion" title="struct HklQuaternion"><span class="type">HklQuaternion</span></a> *self</code></em>,
+                          <em class="parameter"><code><a class="link" href="hkl-hkl.html#HklMatrix" title="HklMatrix"><span class="type">HklMatrix</span></a> *m</code></em>);</pre>
+<p>Compute the rotation matrix of a Quaternion.</p>
+<p>compute the rotation matrix corresponding to the unitary quaternion.
+\f$ q = a + b \cdot i + c \cdot j + d \cdot k \f$</p>
+<p>\f$
 \left(
  \begin{array}{ccc}
-   a^2+b^2-c^2-d^2 & 2bc-2ad         & 2ac+2bd\\
-   2ad+2bc         & a^2-b^2+c^2-d^2 & 2cd-2ab\\
+   a^2+b^2-c^2-d^2 & 2bc-2ad         & 2ac+2bd\
+   2ad+2bc         & a^2-b^2+c^2-d^2 & 2cd-2ab\
    2bd-2ac         & 2ab+2cd         & a^2-b^2-c^2+d^2
  \end{array}
 \right)
 \f$
-Todo: optimize
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+Todo: optimize</p>
+<div class="refsect3">
+<a name="id-1.2.25.5.13.7"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
-<td>the <a class="link" href="hkl-hkl.html#HklQuaternion" title="struct HklQuaternion"><span class="type">HklQuaternion</span></a> use to compute the <a class="link" href="hkl-hkl.html#HklMatrix" title="HklMatrix"><span class="type">HklMatrix</span></a>
-</td>
+<td class="parameter_name"><p>self</p></td>
+<td class="parameter_description"><p>the <a class="link" href="hkl-hkl.html#HklQuaternion" title="struct HklQuaternion"><span class="type">HklQuaternion</span></a> use to compute the <a class="link" href="hkl-hkl.html#HklMatrix" title="HklMatrix"><span class="type">HklMatrix</span></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>m</code></em> :</span></p></td>
-<td>the <a class="link" href="hkl-hkl.html#HklMatrix" title="HklMatrix"><span class="type">HklMatrix</span></a> return.</td>
+<td class="parameter_name"><p>m</p></td>
+<td class="parameter_description"><p>the <a class="link" href="hkl-hkl.html#HklMatrix" title="HklMatrix"><span class="type">HklMatrix</span></a> return.</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
 </div>
 </div>
+<hr>
+<div class="refsect2">
+<a name="hkl-quaternion-to-angle-and-axe"></a><h3>hkl_quaternion_to_angle_and_axe ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+hkl_quaternion_to_angle_and_axe (<em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklQuaternion" title="struct HklQuaternion"><span class="type">HklQuaternion</span></a> *self</code></em>,
+                                 <em class="parameter"><code><span class="type">double</span> *angle</code></em>,
+                                 <em class="parameter"><code><a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> *v</code></em>);</pre>
+<p>compute the axe and angle of the unitary quaternion angle [-pi, pi]
+if q is the (1, 0, 0, 0) quaternion return the (0,0,0) axe and a 0 angle</p>
+<div class="refsect3">
+<a name="id-1.2.25.5.14.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>self</p></td>
+<td class="parameter_description"><p>The <a class="link" href="hkl-hkl.html#HklQuaternion" title="struct HklQuaternion"><span class="type">HklQuaternion</span></a> use to compute the angle and the roation axis.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>angle</p></td>
+<td class="parameter_description"><p>the returned angle of the rotation.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>v</p></td>
+<td class="parameter_description"><p>the returned axis of the rotation.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+</div>
+<div class="refsect1">
+<a name="hkl-hkl-quaternion-private.other_details"></a><h2>Types and Values</h2>
+</div>
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/Documentation/api/html/hkl-hkl-sample-private.html b/Documentation/api/html/hkl-hkl-sample-private.html
index 47aa8b0..cf1a1a3 100644
--- a/Documentation/api/html/hkl-hkl-sample-private.html
+++ b/Documentation/api/html/hkl-hkl-sample-private.html
@@ -2,30 +2,26 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>hkl-sample-private</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<title>hkl Reference Manual: hkl-sample-private</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="hkl Reference Manual">
 <link rel="up" href="ch01.html" title="[Insert title here]">
 <link rel="prev" href="hkl-hkl-quaternion-private.html" title="hkl-quaternion-private">
 <link rel="next" href="hkl-hkl-source-private.html" title="hkl-source-private">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
-<tr valign="middle">
-<td><a accesskey="p" href="hkl-hkl-quaternion-private.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">hkl Reference Manual</th>
-<td><a accesskey="n" href="hkl-hkl-source-private.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
-</tr>
-<tr><td colspan="5" class="shortcuts">
-<a href="#hkl-hkl-sample-private.synopsis" class="shortcut">Top</a>
-                   | 
-                  <a href="#hkl-hkl-sample-private.description" class="shortcut">Description</a>
-</td></tr>
-</table>
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts">
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+                  <a href="#hkl-hkl-sample-private.description" class="shortcut">Description</a></span>
+</td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="p" href="hkl-hkl-quaternion-private.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="hkl-hkl-source-private.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
 <div class="refentry">
 <a name="hkl-hkl-sample-private"></a><div class="titlepage"></div>
 <div class="refnamediv"><table width="100%"><tr>
@@ -33,41 +29,126 @@
 <h2><span class="refentrytitle"><a name="hkl-hkl-sample-private.top_of_page"></a>hkl-sample-private</span></h2>
 <p>hkl-sample-private</p>
 </td>
-<td valign="top" align="right"></td>
+<td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
-<div class="refsynopsisdiv">
-<a name="hkl-hkl-sample-private.synopsis"></a><h2>Synopsis</h2>
-<pre class="synopsis">#define             <a class="link" href="hkl-hkl-sample-private.html#HKL-SAMPLE-ERROR:CAPS" title="HKL_SAMPLE_ERROR">HKL_SAMPLE_ERROR</a>
-#define             <a class="link" href="hkl-hkl-sample-private.html#HKL-SAMPLE-REFLECTION-ERROR:CAPS" title="HKL_SAMPLE_REFLECTION_ERROR">HKL_SAMPLE_REFLECTION_ERROR</a>
-                    <a class="link" href="hkl-hkl.html#HklSample" title="HklSample">HklSample</a>;
-enum                <a class="link" href="hkl-hkl-sample-private.html#HklSampleError" title="enum HklSampleError">HklSampleError</a>;
-                    <a class="link" href="hkl-hkl.html#HklSampleReflection" title="HklSampleReflection">HklSampleReflection</a>;
-enum                <a class="link" href="hkl-hkl-sample-private.html#HklSampleReflectionError" title="enum HklSampleReflectionError">HklSampleReflectionError</a>;
-<span class="returnvalue">return</span>              <a class="link" href="hkl-hkl-geometry-private.html#g-quark-from-static-string" title="g_quark_from_static_string ()">g_quark_from_static_string</a>          ();
-<span class="returnvalue">void</span>                <a class="link" href="hkl-hkl-sample-private.html#hkl-sample-fprintf" title="hkl_sample_fprintf ()">hkl_sample_fprintf</a>                  (<em class="parameter"><code><span class="type">FILE</span> *f</code></em>,
-                                                         <em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklSample" title="HklSample"><span class="type">HklSample</span></a> *self</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="hkl-hkl-sample-private.html#hkl-sample-reflection-free" title="hkl_sample_reflection_free ()">hkl_sample_reflection_free</a>          (<em class="parameter"><code><a class="link" href="hkl-hkl.html#HklSampleReflection" title="HklSampleReflection"><span class="type">HklSampleReflection</span></a> *self</code></em>);
-<a class="link" href="hkl-hkl.html#HklSampleReflection" title="HklSampleReflection"><span class="returnvalue">HklSampleReflection</span></a> * <a class="link" href="hkl-hkl-sample-private.html#hkl-sample-reflection-new-copy" title="hkl_sample_reflection_new_copy ()">hkl_sample_reflection_new_copy</a>    (<em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklSampleReflection" title="HklSampleReflection"><span class="type">HklSampleReflection</span></a> *self</code></em>);
-</pre>
+<div class="refsect1">
+<a name="hkl-hkl-sample-private.functions"></a><h2>Functions</h2>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="functions_return">
+<col class="functions_name">
+</colgroup>
+<tbody>
+<tr>
+<td class="function_type">
+<span class="returnvalue">return</span>
+</td>
+<td class="function_name">
+<a class="link" href="hkl-hkl-geometry-private.html#g-quark-from-static-string" title="g_quark_from_static_string ()">g_quark_from_static_string</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="hkl-hkl-sample-private.html#hkl-sample-fprintf" title="hkl_sample_fprintf ()">hkl_sample_fprintf</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="hkl-hkl.html#HklSampleReflection" title="HklSampleReflection"><span class="returnvalue">HklSampleReflection</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="hkl-hkl-sample-private.html#hkl-sample-reflection-new-copy" title="hkl_sample_reflection_new_copy ()">hkl_sample_reflection_new_copy</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="hkl-hkl-sample-private.html#hkl-sample-reflection-free" title="hkl_sample_reflection_free ()">hkl_sample_reflection_free</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="hkl-hkl-sample-private.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="name">
+<col class="description">
+</colgroup>
+<tbody>
+<tr>
+<td class="datatype_keyword"> </td>
+<td class="function_name"><a class="link" href="hkl-hkl.html#HklSample" title="HklSample">HklSample</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="hkl-hkl-sample-private.html#HKL-SAMPLE-ERROR:CAPS" title="HKL_SAMPLE_ERROR">HKL_SAMPLE_ERROR</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword">enum</td>
+<td class="function_name"><a class="link" href="hkl-hkl-sample-private.html#HklSampleError" title="enum HklSampleError">HklSampleError</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword"> </td>
+<td class="function_name"><a class="link" href="hkl-hkl.html#HklSampleReflection" title="HklSampleReflection">HklSampleReflection</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="hkl-hkl-sample-private.html#HKL-SAMPLE-REFLECTION-ERROR:CAPS" title="HKL_SAMPLE_REFLECTION_ERROR">HKL_SAMPLE_REFLECTION_ERROR</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword">enum</td>
+<td class="function_name"><a class="link" href="hkl-hkl-sample-private.html#HklSampleReflectionError" title="enum HklSampleReflectionError">HklSampleReflectionError</a></td>
+</tr>
+</tbody>
+</table></div>
 </div>
 <div class="refsect1">
 <a name="hkl-hkl-sample-private.description"></a><h2>Description</h2>
 </div>
 <div class="refsect1">
-<a name="hkl-hkl-sample-private.details"></a><h2>Details</h2>
+<a name="hkl-hkl-sample-private.functions_details"></a><h2>Functions</h2>
 <div class="refsect2">
-<a name="HKL-SAMPLE-ERROR:CAPS"></a><h3>HKL_SAMPLE_ERROR</h3>
-<pre class="programlisting">#define HKL_SAMPLE_ERROR hkl_sample_error_quark ()
-</pre>
+<a name="g-quark-from-static-string"></a><h3>g_quark_from_static_string ()</h3>
+<pre class="programlisting"><span class="returnvalue">return</span>
+g_quark_from_static_string ();</pre>
 </div>
 <hr>
 <div class="refsect2">
-<a name="HKL-SAMPLE-REFLECTION-ERROR:CAPS"></a><h3>HKL_SAMPLE_REFLECTION_ERROR</h3>
-<pre class="programlisting">#define HKL_SAMPLE_REFLECTION_ERROR hkl_sample_reflection_error_quark ()
-</pre>
+<a name="hkl-sample-fprintf"></a><h3>hkl_sample_fprintf ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+hkl_sample_fprintf (<em class="parameter"><code><span class="type">FILE</span> *f</code></em>,
+                    <em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklSample" title="HklSample"><span class="type">HklSample</span></a> *self</code></em>);</pre>
+<p>print to a file a sample</p>
 </div>
 <hr>
 <div class="refsect2">
+<a name="hkl-sample-reflection-new-copy"></a><h3>hkl_sample_reflection_new_copy ()</h3>
+<pre class="programlisting"><a class="link" href="hkl-hkl.html#HklSampleReflection" title="HklSampleReflection"><span class="returnvalue">HklSampleReflection</span></a> *
+hkl_sample_reflection_new_copy (<em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklSampleReflection" title="HklSampleReflection"><span class="type">HklSampleReflection</span></a> *self</code></em>);</pre>
+<p>copy constructor</p>
+<div class="refsect3">
+<a name="id-1.2.26.6.4.5"></a><h4>Returns</h4>
+<p></p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="hkl-sample-reflection-free"></a><h3>hkl_sample_reflection_free ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+hkl_sample_reflection_free (<em class="parameter"><code><a class="link" href="hkl-hkl.html#HklSampleReflection" title="HklSampleReflection"><span class="type">HklSampleReflection</span></a> *self</code></em>);</pre>
+<p>destructor</p>
+</div>
+</div>
+<div class="refsect1">
+<a name="hkl-hkl-sample-private.other_details"></a><h2>Types and Values</h2>
+<div class="refsect2">
 <a name="HklSample"></a><h3>HklSample</h3>
 <pre class="programlisting">typedef struct {
 	char *name;
@@ -84,15 +165,38 @@ enum                <a class="link" href="hkl-hkl-sample-private.html#HklSampleR
 </div>
 <hr>
 <div class="refsect2">
-<a name="HklSampleError"></a><h3>enum HklSampleError</h3>
-<pre class="programlisting">typedef enum {
-	HKL_SAMPLE_ERROR_MINIMIZED, /* can not minimize the sample */
-	HKL_SAMPLE_ERROR_COMPUTE_UB_BUSING_LEVY, /* can not compute UB */
-} HklSampleError;
+<a name="HKL-SAMPLE-ERROR:CAPS"></a><h3>HKL_SAMPLE_ERROR</h3>
+<pre class="programlisting">#define HKL_SAMPLE_ERROR hkl_sample_error_quark ()
 </pre>
 </div>
 <hr>
 <div class="refsect2">
+<a name="HklSampleError"></a><h3>enum HklSampleError</h3>
+<div class="refsect3">
+<a name="id-1.2.26.7.4.3"></a><h4>Members</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="300px" class="enum_members_name">
+<col class="enum_members_description">
+<col width="200px" class="enum_members_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="enum_member_name"><p><a name="HKL-SAMPLE-ERROR-MINIMIZED:CAPS"></a>HKL_SAMPLE_ERROR_MINIMIZED</p></td>
+<td> </td>
+<td> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="HKL-SAMPLE-ERROR-COMPUTE-UB-BUSING-LEVY:CAPS"></a>HKL_SAMPLE_ERROR_COMPUTE_UB_BUSING_LEVY</p></td>
+<td> </td>
+<td> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
 <a name="HklSampleReflection"></a><h3>HklSampleReflection</h3>
 <pre class="programlisting">typedef struct {
 	HklGeometry *geometry;
@@ -106,46 +210,33 @@ enum                <a class="link" href="hkl-hkl-sample-private.html#HklSampleR
 </div>
 <hr>
 <div class="refsect2">
-<a name="HklSampleReflectionError"></a><h3>enum HklSampleReflectionError</h3>
-<pre class="programlisting">typedef enum {
-	HKL_SAMPLE_REFLECTION_ERROR_HKL_SET, /* can not set the hkl part of the reflection */
-} HklSampleReflectionError;
+<a name="HKL-SAMPLE-REFLECTION-ERROR:CAPS"></a><h3>HKL_SAMPLE_REFLECTION_ERROR</h3>
+<pre class="programlisting">#define HKL_SAMPLE_REFLECTION_ERROR hkl_sample_reflection_error_quark ()
 </pre>
 </div>
 <hr>
 <div class="refsect2">
-<a name="g-quark-from-static-string"></a><h3>g_quark_from_static_string ()</h3>
-<pre class="programlisting"><span class="returnvalue">return</span>              g_quark_from_static_string          ();</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="hkl-sample-fprintf"></a><h3>hkl_sample_fprintf ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                hkl_sample_fprintf                  (<em class="parameter"><code><span class="type">FILE</span> *f</code></em>,
-                                                         <em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklSample" title="HklSample"><span class="type">HklSample</span></a> *self</code></em>);</pre>
-<p>
-print to a file a sample
-</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="hkl-sample-reflection-free"></a><h3>hkl_sample_reflection_free ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                hkl_sample_reflection_free          (<em class="parameter"><code><a class="link" href="hkl-hkl.html#HklSampleReflection" title="HklSampleReflection"><span class="type">HklSampleReflection</span></a> *self</code></em>);</pre>
-<p>
-destructor
-</p>
+<a name="HklSampleReflectionError"></a><h3>enum HklSampleReflectionError</h3>
+<div class="refsect3">
+<a name="id-1.2.26.7.7.3"></a><h4>Members</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="300px" class="enum_members_name">
+<col class="enum_members_description">
+<col width="200px" class="enum_members_annotations">
+</colgroup>
+<tbody><tr>
+<td class="enum_member_name"><p><a name="HKL-SAMPLE-REFLECTION-ERROR-HKL-SET:CAPS"></a>HKL_SAMPLE_REFLECTION_ERROR_HKL_SET</p></td>
+<td> </td>
+<td> </td>
+</tr></tbody>
+</table></div>
 </div>
-<hr>
-<div class="refsect2">
-<a name="hkl-sample-reflection-new-copy"></a><h3>hkl_sample_reflection_new_copy ()</h3>
-<pre class="programlisting"><a class="link" href="hkl-hkl.html#HklSampleReflection" title="HklSampleReflection"><span class="returnvalue">HklSampleReflection</span></a> * hkl_sample_reflection_new_copy    (<em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklSampleReflection" title="HklSampleReflection"><span class="type">HklSampleReflection</span></a> *self</code></em>);</pre>
-<p>
-copy constructor
-</p>
 </div>
 </div>
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/Documentation/api/html/hkl-hkl-source-private.html b/Documentation/api/html/hkl-hkl-source-private.html
index 5971eed..350b073 100644
--- a/Documentation/api/html/hkl-hkl-source-private.html
+++ b/Documentation/api/html/hkl-hkl-source-private.html
@@ -2,30 +2,26 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>hkl-source-private</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<title>hkl Reference Manual: hkl-source-private</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="hkl Reference Manual">
 <link rel="up" href="ch01.html" title="[Insert title here]">
 <link rel="prev" href="hkl-hkl-sample-private.html" title="hkl-sample-private">
 <link rel="next" href="hkl-hkl-type-builtins.html" title="hkl-type-builtins">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
-<tr valign="middle">
-<td><a accesskey="p" href="hkl-hkl-sample-private.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">hkl Reference Manual</th>
-<td><a accesskey="n" href="hkl-hkl-type-builtins.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
-</tr>
-<tr><td colspan="5" class="shortcuts">
-<a href="#hkl-hkl-source-private.synopsis" class="shortcut">Top</a>
-                   | 
-                  <a href="#hkl-hkl-source-private.description" class="shortcut">Description</a>
-</td></tr>
-</table>
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts">
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+                  <a href="#hkl-hkl-source-private.description" class="shortcut">Description</a></span>
+</td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="p" href="hkl-hkl-sample-private.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="hkl-hkl-type-builtins.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
 <div class="refentry">
 <a name="hkl-hkl-source-private"></a><div class="titlepage"></div>
 <div class="refnamediv"><table width="100%"><tr>
@@ -33,189 +29,297 @@
 <h2><span class="refentrytitle"><a name="hkl-hkl-source-private.top_of_page"></a>hkl-source-private</span></h2>
 <p>hkl-source-private</p>
 </td>
-<td valign="top" align="right"></td>
+<td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
-<div class="refsynopsisdiv">
-<a name="hkl-hkl-source-private.synopsis"></a><h2>Synopsis</h2>
-<pre class="synopsis">#define             <a class="link" href="hkl-hkl-source-private.html#HKL-SOURCE-DEFAULT-WAVE-LENGTH:CAPS" title="HKL_SOURCE_DEFAULT_WAVE_LENGTH">HKL_SOURCE_DEFAULT_WAVE_LENGTH</a>
-struct              <a class="link" href="hkl-hkl-source-private.html#HklSource" title="struct HklSource">HklSource</a>;
-<span class="returnvalue">int</span>                 <a class="link" href="hkl-hkl-source-private.html#hkl-source-cmp" title="hkl_source_cmp ()">hkl_source_cmp</a>                      (<em class="parameter"><code><a class="link" href="hkl-hkl-source-private.html#HklSource" title="struct HklSource"><span class="type">HklSource</span></a> const *self</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="hkl-hkl-source-private.html#HklSource" title="struct HklSource"><span class="type">HklSource</span></a> const *s</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="hkl-hkl-source-private.html#hkl-source-compute-ki" title="hkl_source_compute_ki ()">hkl_source_compute_ki</a>               (<em class="parameter"><code><a class="link" href="hkl-hkl-source-private.html#HklSource" title="struct HklSource"><span class="type">HklSource</span></a> const *self</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> *ki</code></em>);
-<a class="link" href="hkl-hkl-source-private.html#HklSource" title="struct HklSource"><span class="returnvalue">HklSource</span></a> *         <a class="link" href="hkl-hkl-source-private.html#hkl-source-dup" title="hkl_source_dup ()">hkl_source_dup</a>                      (<em class="parameter"><code>const <a class="link" href="hkl-hkl-source-private.html#HklSource" title="struct HklSource"><span class="type">HklSource</span></a> *self</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="hkl-hkl-source-private.html#hkl-source-fprintf" title="hkl_source_fprintf ()">hkl_source_fprintf</a>                  (<em class="parameter"><code><span class="type">FILE</span> *f</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="hkl-hkl-source-private.html#HklSource" title="struct HklSource"><span class="type">HklSource</span></a> const *self</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="hkl-hkl-source-private.html#hkl-source-free" title="hkl_source_free ()">hkl_source_free</a>                     (<em class="parameter"><code><a class="link" href="hkl-hkl-source-private.html#HklSource" title="struct HklSource"><span class="type">HklSource</span></a> *self</code></em>);
-<span class="returnvalue">double</span>              <a class="link" href="hkl-hkl-source-private.html#hkl-source-get-wavelength" title="hkl_source_get_wavelength ()">hkl_source_get_wavelength</a>           (<em class="parameter"><code><a class="link" href="hkl-hkl-source-private.html#HklSource" title="struct HklSource"><span class="type">HklSource</span></a> const *self</code></em>);
-<span class="returnvalue">int</span>                 <a class="link" href="hkl-hkl-source-private.html#hkl-source-init" title="hkl_source_init ()">hkl_source_init</a>                     (<em class="parameter"><code><a class="link" href="hkl-hkl-source-private.html#HklSource" title="struct HklSource"><span class="type">HklSource</span></a> *self</code></em>,
-                                                         <em class="parameter"><code><span class="type">double</span> wave_length</code></em>,
-                                                         <em class="parameter"><code><span class="type">double</span> x</code></em>,
-                                                         <em class="parameter"><code><span class="type">double</span> y</code></em>,
-                                                         <em class="parameter"><code><span class="type">double</span> z</code></em>);
-</pre>
-</div>
-<div class="refsect1">
-<a name="hkl-hkl-source-private.description"></a><h2>Description</h2>
-</div>
 <div class="refsect1">
-<a name="hkl-hkl-source-private.details"></a><h2>Details</h2>
-<div class="refsect2">
-<a name="HKL-SOURCE-DEFAULT-WAVE-LENGTH:CAPS"></a><h3>HKL_SOURCE_DEFAULT_WAVE_LENGTH</h3>
-<pre class="programlisting">#define HKL_SOURCE_DEFAULT_WAVE_LENGTH (1.54)
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="HklSource"></a><h3>struct HklSource</h3>
-<pre class="programlisting">struct HklSource {
-	double wave_length;
-	HklVector direction;
-};
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="hkl-source-cmp"></a><h3>hkl_source_cmp ()</h3>
-<pre class="programlisting"><span class="returnvalue">int</span>                 hkl_source_cmp                      (<em class="parameter"><code><a class="link" href="hkl-hkl-source-private.html#HklSource" title="struct HklSource"><span class="type">HklSource</span></a> const *self</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="hkl-hkl-source-private.html#HklSource" title="struct HklSource"><span class="type">HklSource</span></a> const *s</code></em>);</pre>
-<p>
-compare two sources
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="hkl-hkl-source-private.functions"></a><h2>Functions</h2>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="functions_return">
+<col class="functions_name">
+</colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
-<td>1st <span class="type">Hklsource</span>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="hkl-hkl-source-private.html#HKL-SOURCE-DEFAULT-WAVE-LENGTH:CAPS" title="HKL_SOURCE_DEFAULT_WAVE_LENGTH">HKL_SOURCE_DEFAULT_WAVE_LENGTH</a></td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="hkl-hkl-source-private.html#HklSource" title="struct HklSource"><span class="returnvalue">HklSource</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="hkl-hkl-source-private.html#hkl-source-dup" title="hkl_source_dup ()">hkl_source_dup</a> <span class="c_punctuation">()</span>
 </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>s</code></em> :</span></p></td>
-<td>2nd <span class="type">Hklsource</span>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="hkl-hkl-source-private.html#hkl-source-free" title="hkl_source_free ()">hkl_source_free</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">int</span>
+</td>
+<td class="function_name">
+<a class="link" href="hkl-hkl-source-private.html#hkl-source-init" title="hkl_source_init ()">hkl_source_init</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">int</span>
+</td>
+<td class="function_name">
+<a class="link" href="hkl-hkl-source-private.html#hkl-source-cmp" title="hkl_source_cmp ()">hkl_source_cmp</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="hkl-hkl-source-private.html#hkl-source-compute-ki" title="hkl_source_compute_ki ()">hkl_source_compute_ki</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">double</span>
+</td>
+<td class="function_name">
+<a class="link" href="hkl-hkl-source-private.html#hkl-source-get-wavelength" title="hkl_source_get_wavelength ()">hkl_source_get_wavelength</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="hkl-hkl-source-private.html#hkl-source-fprintf" title="hkl_source_fprintf ()">hkl_source_fprintf</a> <span class="c_punctuation">()</span>
 </td>
 </tr>
 </tbody>
 </table></div>
 </div>
-<hr>
-<div class="refsect2">
-<a name="hkl-source-compute-ki"></a><h3>hkl_source_compute_ki ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                hkl_source_compute_ki               (<em class="parameter"><code><a class="link" href="hkl-hkl-source-private.html#HklSource" title="struct HklSource"><span class="type">HklSource</span></a> const *self</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> *ki</code></em>);</pre>
-<p>
-compute the ki hkl_vector
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<div class="refsect1">
+<a name="hkl-hkl-source-private.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="name">
+<col class="description">
+</colgroup>
 <tbody><tr>
-<td><p><span class="term"><em class="parameter"><code>ki</code></em> :</span></p></td>
-<td>. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym> caller-allocates]</span>
-</td>
+<td class="datatype_keyword">struct</td>
+<td class="function_name"><a class="link" href="hkl-hkl-source-private.html#HklSource" title="struct HklSource">HklSource</a></td>
 </tr></tbody>
 </table></div>
 </div>
-<hr>
-<div class="refsect2">
-<a name="hkl-source-dup"></a><h3>hkl_source_dup ()</h3>
-<pre class="programlisting"><a class="link" href="hkl-hkl-source-private.html#HklSource" title="struct HklSource"><span class="returnvalue">HklSource</span></a> *         hkl_source_dup                      (<em class="parameter"><code>const <a class="link" href="hkl-hkl-source-private.html#HklSource" title="struct HklSource"><span class="type">HklSource</span></a> *self</code></em>);</pre>
-<p>
-copy constructor
-TODO test
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody><tr>
-<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
-<td>the <span class="type">Hklsource</span> to copy</td>
-</tr></tbody>
-</table></div>
+<div class="refsect1">
+<a name="hkl-hkl-source-private.description"></a><h2>Description</h2>
 </div>
-<hr>
+<div class="refsect1">
+<a name="hkl-hkl-source-private.functions_details"></a><h2>Functions</h2>
 <div class="refsect2">
-<a name="hkl-source-fprintf"></a><h3>hkl_source_fprintf ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                hkl_source_fprintf                  (<em class="parameter"><code><span class="type">FILE</span> *f</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="hkl-hkl-source-private.html#HklSource" title="struct HklSource"><span class="type">HklSource</span></a> const *self</code></em>);</pre>
-<p>
-printf the source
-</p>
+<a name="HKL-SOURCE-DEFAULT-WAVE-LENGTH:CAPS"></a><h3>HKL_SOURCE_DEFAULT_WAVE_LENGTH</h3>
+<pre class="programlisting">#define HKL_SOURCE_DEFAULT_WAVE_LENGTH (1.54)
+</pre>
 </div>
 <hr>
 <div class="refsect2">
-<a name="hkl-source-free"></a><h3>hkl_source_free ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                hkl_source_free                     (<em class="parameter"><code><a class="link" href="hkl-hkl-source-private.html#HklSource" title="struct HklSource"><span class="type">HklSource</span></a> *self</code></em>);</pre>
-<p>
-destructor
-TODO: test
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="hkl-source-dup"></a><h3>hkl_source_dup ()</h3>
+<pre class="programlisting"><a class="link" href="hkl-hkl-source-private.html#HklSource" title="struct HklSource"><span class="returnvalue">HklSource</span></a> *
+hkl_source_dup (<em class="parameter"><code>const <a class="link" href="hkl-hkl-source-private.html#HklSource" title="struct HklSource"><span class="type">HklSource</span></a> *self</code></em>);</pre>
+<p>copy constructor
+TODO test</p>
+<div class="refsect3">
+<a name="id-1.2.27.6.3.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
 <tbody><tr>
-<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
-<td>the <span class="type">Hklsource</span> to delete</td>
+<td class="parameter_name"><p>self</p></td>
+<td class="parameter_description"><p>the <span class="type">Hklsource</span> to copy</p></td>
+<td class="parameter_annotations"> </td>
 </tr></tbody>
 </table></div>
 </div>
+<div class="refsect3">
+<a name="id-1.2.27.6.3.6"></a><h4>Returns</h4>
+<p></p>
+</div>
+</div>
 <hr>
 <div class="refsect2">
-<a name="hkl-source-get-wavelength"></a><h3>hkl_source_get_wavelength ()</h3>
-<pre class="programlisting"><span class="returnvalue">double</span>              hkl_source_get_wavelength           (<em class="parameter"><code><a class="link" href="hkl-hkl-source-private.html#HklSource" title="struct HklSource"><span class="type">HklSource</span></a> const *self</code></em>);</pre>
-<p>
-get the wave_length
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="hkl-source-free"></a><h3>hkl_source_free ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+hkl_source_free (<em class="parameter"><code><a class="link" href="hkl-hkl-source-private.html#HklSource" title="struct HklSource"><span class="type">HklSource</span></a> *self</code></em>);</pre>
+<p>destructor
+TODO: test</p>
+<div class="refsect3">
+<a name="id-1.2.27.6.4.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
 <tbody><tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>the wave_length</td>
+<td class="parameter_name"><p>self</p></td>
+<td class="parameter_description"><p>the <span class="type">Hklsource</span> to delete</p></td>
+<td class="parameter_annotations"> </td>
 </tr></tbody>
 </table></div>
 </div>
+</div>
 <hr>
 <div class="refsect2">
-<a name="hkl-source-init"></a><h3>hkl_source_init ()</h3>
-<pre class="programlisting"><span class="returnvalue">int</span>                 hkl_source_init                     (<em class="parameter"><code><a class="link" href="hkl-hkl-source-private.html#HklSource" title="struct HklSource"><span class="type">HklSource</span></a> *self</code></em>,
-                                                         <em class="parameter"><code><span class="type">double</span> wave_length</code></em>,
-                                                         <em class="parameter"><code><span class="type">double</span> x</code></em>,
-                                                         <em class="parameter"><code><span class="type">double</span> y</code></em>,
-                                                         <em class="parameter"><code><span class="type">double</span> z</code></em>);</pre>
-<p>
-initialize the <a class="link" href="hkl-hkl-source-private.html#HklSource" title="struct HklSource"><span class="type">HklSource</span></a>
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="hkl-source-init"></a><h3>hkl_source_init ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+hkl_source_init (<em class="parameter"><code><a class="link" href="hkl-hkl-source-private.html#HklSource" title="struct HklSource"><span class="type">HklSource</span></a> *self</code></em>,
+                 <em class="parameter"><code><span class="type">double</span> wave_length</code></em>,
+                 <em class="parameter"><code><span class="type">double</span> x</code></em>,
+                 <em class="parameter"><code><span class="type">double</span> y</code></em>,
+                 <em class="parameter"><code><span class="type">double</span> z</code></em>);</pre>
+<p>initialize the <a class="link" href="hkl-hkl-source-private.html#HklSource" title="struct HklSource"><span class="type">HklSource</span></a></p>
+<div class="refsect3">
+<a name="id-1.2.27.6.5.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
-<td>the <span class="type">Hklsource</span> to initialize</td>
+<td class="parameter_name"><p>self</p></td>
+<td class="parameter_description"><p>the <span class="type">Hklsource</span> to initialize</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>wave_length</code></em> :</span></p></td>
-<td>the wave length to set</td>
+<td class="parameter_name"><p>wave_length</p></td>
+<td class="parameter_description"><p>the wave length to set</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>x</code></em> :</span></p></td>
-<td>x coordinates of the ki vector</td>
+<td class="parameter_name"><p>x</p></td>
+<td class="parameter_description"><p>x coordinates of the ki vector</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>y</code></em> :</span></p></td>
-<td>y coordinates of the ki vector</td>
+<td class="parameter_name"><p>y</p></td>
+<td class="parameter_description"><p>y coordinates of the ki vector</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>z</code></em> :</span></p></td>
-<td>z coordinates of the ki vector</td>
+<td class="parameter_name"><p>z</p></td>
+<td class="parameter_description"><p>z coordinates of the ki vector</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="id-1.2.27.6.5.6"></a><h4>Returns</h4>
+<p> HKL_SUCCESS if everythongs goes fine, HKL_FAIL otherwise</p>
+<p></p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="hkl-source-cmp"></a><h3>hkl_source_cmp ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+hkl_source_cmp (<em class="parameter"><code><a class="link" href="hkl-hkl-source-private.html#HklSource" title="struct HklSource"><span class="type">HklSource</span></a> const *self</code></em>,
+                <em class="parameter"><code><a class="link" href="hkl-hkl-source-private.html#HklSource" title="struct HklSource"><span class="type">HklSource</span></a> const *s</code></em>);</pre>
+<p>compare two sources</p>
+<div class="refsect3">
+<a name="id-1.2.27.6.6.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
 <tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>HKL_SUCCESS if everythongs goes fine, HKL_FAIL otherwise</td>
+<td class="parameter_name"><p>self</p></td>
+<td class="parameter_description"><p>1st <span class="type">Hklsource</span></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>s</p></td>
+<td class="parameter_description"><p>2nd <span class="type">Hklsource</span></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
 </div>
+<div class="refsect3">
+<a name="id-1.2.27.6.6.6"></a><h4>Returns</h4>
+<p></p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="hkl-source-compute-ki"></a><h3>hkl_source_compute_ki ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+hkl_source_compute_ki (<em class="parameter"><code><a class="link" href="hkl-hkl-source-private.html#HklSource" title="struct HklSource"><span class="type">HklSource</span></a> const *self</code></em>,
+                       <em class="parameter"><code><a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> *ki</code></em>);</pre>
+<p>compute the ki hkl_vector</p>
+<div class="refsect3">
+<a name="id-1.2.27.6.7.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>ki</p></td>
+<td class="parameter_description"><p>. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Out parameter, where caller must allocate storage."><span class="acronym">out caller-allocates</span></acronym>]</span></td>
+</tr></tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="hkl-source-get-wavelength"></a><h3>hkl_source_get_wavelength ()</h3>
+<pre class="programlisting"><span class="returnvalue">double</span>
+hkl_source_get_wavelength (<em class="parameter"><code><a class="link" href="hkl-hkl-source-private.html#HklSource" title="struct HklSource"><span class="type">HklSource</span></a> const *self</code></em>);</pre>
+<p>get the wave_length</p>
+<div class="refsect3">
+<a name="id-1.2.27.6.8.5"></a><h4>Returns</h4>
+<p> the wave_length</p>
+<p></p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="hkl-source-fprintf"></a><h3>hkl_source_fprintf ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+hkl_source_fprintf (<em class="parameter"><code><span class="type">FILE</span> *f</code></em>,
+                    <em class="parameter"><code><a class="link" href="hkl-hkl-source-private.html#HklSource" title="struct HklSource"><span class="type">HklSource</span></a> const *self</code></em>);</pre>
+<p>printf the source</p>
+</div>
+</div>
+<div class="refsect1">
+<a name="hkl-hkl-source-private.other_details"></a><h2>Types and Values</h2>
+<div class="refsect2">
+<a name="HklSource"></a><h3>struct HklSource</h3>
+<pre class="programlisting">struct HklSource {
+	double wave_length;
+	HklVector direction;
+};
+</pre>
+</div>
 </div>
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/Documentation/api/html/hkl-hkl-type-builtins.html b/Documentation/api/html/hkl-hkl-type-builtins.html
index 65acf9d..51210b1 100644
--- a/Documentation/api/html/hkl-hkl-type-builtins.html
+++ b/Documentation/api/html/hkl-hkl-type-builtins.html
@@ -2,30 +2,26 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>hkl-type-builtins</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<title>hkl Reference Manual: hkl-type-builtins</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="hkl Reference Manual">
 <link rel="up" href="ch01.html" title="[Insert title here]">
 <link rel="prev" href="hkl-hkl-source-private.html" title="hkl-source-private">
 <link rel="next" href="hkl-hkl-types.html" title="hkl-types">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
-<tr valign="middle">
-<td><a accesskey="p" href="hkl-hkl-source-private.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">hkl Reference Manual</th>
-<td><a accesskey="n" href="hkl-hkl-types.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
-</tr>
-<tr><td colspan="5" class="shortcuts">
-<a href="#hkl-hkl-type-builtins.synopsis" class="shortcut">Top</a>
-                   | 
-                  <a href="#hkl-hkl-type-builtins.description" class="shortcut">Description</a>
-</td></tr>
-</table>
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts">
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+                  <a href="#hkl-hkl-type-builtins.description" class="shortcut">Description</a></span>
+</td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="p" href="hkl-hkl-source-private.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="hkl-hkl-types.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
 <div class="refentry">
 <a name="hkl-hkl-type-builtins"></a><div class="titlepage"></div>
 <div class="refnamediv"><table width="100%"><tr>
@@ -33,31 +29,53 @@
 <h2><span class="refentrytitle"><a name="hkl-hkl-type-builtins.top_of_page"></a>hkl-type-builtins</span></h2>
 <p>hkl-type-builtins</p>
 </td>
-<td valign="top" align="right"></td>
+<td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
-<div class="refsynopsisdiv">
-<a name="hkl-hkl-type-builtins.synopsis"></a><h2>Synopsis</h2>
-<pre class="synopsis">#define             <a class="link" href="hkl-hkl-type-builtins.html#HKL-TYPE-DETECTOR-TYPE:CAPS" title="HKL_TYPE_DETECTOR_TYPE">HKL_TYPE_DETECTOR_TYPE</a>
-#define             <a class="link" href="hkl-hkl-type-builtins.html#HKL-TYPE-ENGINE-AXIS-NAMES-GET:CAPS" title="HKL_TYPE_ENGINE_AXIS_NAMES_GET">HKL_TYPE_ENGINE_AXIS_NAMES_GET</a>
-#define             <a class="link" href="hkl-hkl-type-builtins.html#HKL-TYPE-ENGINE-CAPABILITIES:CAPS" title="HKL_TYPE_ENGINE_CAPABILITIES">HKL_TYPE_ENGINE_CAPABILITIES</a>
-#define             <a class="link" href="hkl-hkl-type-builtins.html#HKL-TYPE-ENGINE-DEPENDENCIES:CAPS" title="HKL_TYPE_ENGINE_DEPENDENCIES">HKL_TYPE_ENGINE_DEPENDENCIES</a>
-#define             <a class="link" href="hkl-hkl-type-builtins.html#HKL-TYPE-UNIT-ENUM:CAPS" title="HKL_TYPE_UNIT_ENUM">HKL_TYPE_UNIT_ENUM</a>
-</pre>
+<div class="refsect1">
+<a name="hkl-hkl-type-builtins.functions"></a><h2>Functions</h2>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="functions_return">
+<col class="functions_name">
+</colgroup>
+<tbody>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="hkl-hkl-type-builtins.html#HKL-TYPE-UNIT-ENUM:CAPS" title="HKL_TYPE_UNIT_ENUM">HKL_TYPE_UNIT_ENUM</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="hkl-hkl-type-builtins.html#HKL-TYPE-DETECTOR-TYPE:CAPS" title="HKL_TYPE_DETECTOR_TYPE">HKL_TYPE_DETECTOR_TYPE</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="hkl-hkl-type-builtins.html#HKL-TYPE-ENGINE-CAPABILITIES:CAPS" title="HKL_TYPE_ENGINE_CAPABILITIES">HKL_TYPE_ENGINE_CAPABILITIES</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="hkl-hkl-type-builtins.html#HKL-TYPE-ENGINE-AXIS-NAMES-GET:CAPS" title="HKL_TYPE_ENGINE_AXIS_NAMES_GET">HKL_TYPE_ENGINE_AXIS_NAMES_GET</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="hkl-hkl-type-builtins.html#HKL-TYPE-ENGINE-DEPENDENCIES:CAPS" title="HKL_TYPE_ENGINE_DEPENDENCIES">HKL_TYPE_ENGINE_DEPENDENCIES</a></td>
+</tr>
+</tbody>
+</table></div>
 </div>
 <div class="refsect1">
 <a name="hkl-hkl-type-builtins.description"></a><h2>Description</h2>
 </div>
 <div class="refsect1">
-<a name="hkl-hkl-type-builtins.details"></a><h2>Details</h2>
+<a name="hkl-hkl-type-builtins.functions_details"></a><h2>Functions</h2>
 <div class="refsect2">
-<a name="HKL-TYPE-DETECTOR-TYPE:CAPS"></a><h3>HKL_TYPE_DETECTOR_TYPE</h3>
-<pre class="programlisting">#define HKL_TYPE_DETECTOR_TYPE (hkl_detector_type_get_type ())
+<a name="HKL-TYPE-UNIT-ENUM:CAPS"></a><h3>HKL_TYPE_UNIT_ENUM</h3>
+<pre class="programlisting">#define HKL_TYPE_UNIT_ENUM (hkl_unit_enum_get_type ())
 </pre>
 </div>
 <hr>
 <div class="refsect2">
-<a name="HKL-TYPE-ENGINE-AXIS-NAMES-GET:CAPS"></a><h3>HKL_TYPE_ENGINE_AXIS_NAMES_GET</h3>
-<pre class="programlisting">#define HKL_TYPE_ENGINE_AXIS_NAMES_GET (hkl_engine_axis_names_get_get_type ())
+<a name="HKL-TYPE-DETECTOR-TYPE:CAPS"></a><h3>HKL_TYPE_DETECTOR_TYPE</h3>
+<pre class="programlisting">#define HKL_TYPE_DETECTOR_TYPE (hkl_detector_type_get_type ())
 </pre>
 </div>
 <hr>
@@ -68,20 +86,23 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="HKL-TYPE-ENGINE-DEPENDENCIES:CAPS"></a><h3>HKL_TYPE_ENGINE_DEPENDENCIES</h3>
-<pre class="programlisting">#define HKL_TYPE_ENGINE_DEPENDENCIES (hkl_engine_dependencies_get_type ())
+<a name="HKL-TYPE-ENGINE-AXIS-NAMES-GET:CAPS"></a><h3>HKL_TYPE_ENGINE_AXIS_NAMES_GET</h3>
+<pre class="programlisting">#define HKL_TYPE_ENGINE_AXIS_NAMES_GET (hkl_engine_axis_names_get_get_type ())
 </pre>
 </div>
 <hr>
 <div class="refsect2">
-<a name="HKL-TYPE-UNIT-ENUM:CAPS"></a><h3>HKL_TYPE_UNIT_ENUM</h3>
-<pre class="programlisting">#define HKL_TYPE_UNIT_ENUM (hkl_unit_enum_get_type ())
+<a name="HKL-TYPE-ENGINE-DEPENDENCIES:CAPS"></a><h3>HKL_TYPE_ENGINE_DEPENDENCIES</h3>
+<pre class="programlisting">#define HKL_TYPE_ENGINE_DEPENDENCIES (hkl_engine_dependencies_get_type ())
 </pre>
 </div>
 </div>
+<div class="refsect1">
+<a name="hkl-hkl-type-builtins.other_details"></a><h2>Types and Values</h2>
+</div>
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/Documentation/api/html/hkl-hkl-types.html b/Documentation/api/html/hkl-hkl-types.html
index 37e5050..32a7d4d 100644
--- a/Documentation/api/html/hkl-hkl-types.html
+++ b/Documentation/api/html/hkl-hkl-types.html
@@ -2,30 +2,26 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>hkl-types</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<title>hkl Reference Manual: hkl-types</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="hkl Reference Manual">
 <link rel="up" href="ch01.html" title="[Insert title here]">
 <link rel="prev" href="hkl-hkl-type-builtins.html" title="hkl-type-builtins">
 <link rel="next" href="hkl-hkl-unit-private.html" title="hkl-unit-private">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
-<tr valign="middle">
-<td><a accesskey="p" href="hkl-hkl-type-builtins.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">hkl Reference Manual</th>
-<td><a accesskey="n" href="hkl-hkl-unit-private.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
-</tr>
-<tr><td colspan="5" class="shortcuts">
-<a href="#hkl-hkl-types.synopsis" class="shortcut">Top</a>
-                   | 
-                  <a href="#hkl-hkl-types.description" class="shortcut">Description</a>
-</td></tr>
-</table>
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts">
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+                  <a href="#hkl-hkl-types.description" class="shortcut">Description</a></span>
+</td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="p" href="hkl-hkl-type-builtins.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="hkl-hkl-unit-private.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
 <div class="refentry">
 <a name="hkl-hkl-types"></a><div class="titlepage"></div>
 <div class="refnamediv"><table width="100%"><tr>
@@ -33,31 +29,80 @@
 <h2><span class="refentrytitle"><a name="hkl-hkl-types.top_of_page"></a>hkl-types</span></h2>
 <p>hkl-types</p>
 </td>
-<td valign="top" align="right"></td>
+<td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
-<div class="refsynopsisdiv">
-<a name="hkl-hkl-types.synopsis"></a><h2>Synopsis</h2>
-<pre class="synopsis">#define             <a class="link" href="hkl-hkl-types.html#TYPE-HKL-DETECTOR:CAPS" title="TYPE_HKL_DETECTOR">TYPE_HKL_DETECTOR</a>
-#define             <a class="link" href="hkl-hkl-types.html#TYPE-HKL-ENGINE:CAPS" title="TYPE_HKL_ENGINE">TYPE_HKL_ENGINE</a>
-#define             <a class="link" href="hkl-hkl-types.html#TYPE-HKL-ENGINE-LIST:CAPS" title="TYPE_HKL_ENGINE_LIST">TYPE_HKL_ENGINE_LIST</a>
-#define             <a class="link" href="hkl-hkl-types.html#TYPE-HKL-FACTORY:CAPS" title="TYPE_HKL_FACTORY">TYPE_HKL_FACTORY</a>
-#define             <a class="link" href="hkl-hkl-types.html#TYPE-HKL-GEOMETRY:CAPS" title="TYPE_HKL_GEOMETRY">TYPE_HKL_GEOMETRY</a>
-#define             <a class="link" href="hkl-hkl-types.html#TYPE-HKL-GEOMETRY-LIST:CAPS" title="TYPE_HKL_GEOMETRY_LIST">TYPE_HKL_GEOMETRY_LIST</a>
-#define             <a class="link" href="hkl-hkl-types.html#TYPE-HKL-GEOMETRY-LIST-ITEM:CAPS" title="TYPE_HKL_GEOMETRY_LIST_ITEM">TYPE_HKL_GEOMETRY_LIST_ITEM</a>
-#define             <a class="link" href="hkl-hkl-types.html#TYPE-HKL-LATTICE:CAPS" title="TYPE_HKL_LATTICE">TYPE_HKL_LATTICE</a>
-#define             <a class="link" href="hkl-hkl-types.html#TYPE-HKL-MATRIX:CAPS" title="TYPE_HKL_MATRIX">TYPE_HKL_MATRIX</a>
-#define             <a class="link" href="hkl-hkl-types.html#TYPE-HKL-PARAMETER:CAPS" title="TYPE_HKL_PARAMETER">TYPE_HKL_PARAMETER</a>
-#define             <a class="link" href="hkl-hkl-types.html#TYPE-HKL-SAMPLE:CAPS" title="TYPE_HKL_SAMPLE">TYPE_HKL_SAMPLE</a>
-#define             <a class="link" href="hkl-hkl-types.html#TYPE-HKL-SAMPLE-REFLECTION:CAPS" title="TYPE_HKL_SAMPLE_REFLECTION">TYPE_HKL_SAMPLE_REFLECTION</a>
-#define             <a class="link" href="hkl-hkl-types.html#TYPE-HKL-UNIT:CAPS" title="TYPE_HKL_UNIT">TYPE_HKL_UNIT</a>
-#define             <a class="link" href="hkl-hkl-types.html#TYPE-HKL-VECTOR:CAPS" title="TYPE_HKL_VECTOR">TYPE_HKL_VECTOR</a>
-</pre>
+<div class="refsect1">
+<a name="hkl-hkl-types.functions"></a><h2>Functions</h2>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="functions_return">
+<col class="functions_name">
+</colgroup>
+<tbody>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="hkl-hkl-types.html#TYPE-HKL-DETECTOR:CAPS" title="TYPE_HKL_DETECTOR">TYPE_HKL_DETECTOR</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="hkl-hkl-types.html#TYPE-HKL-ENGINE:CAPS" title="TYPE_HKL_ENGINE">TYPE_HKL_ENGINE</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="hkl-hkl-types.html#TYPE-HKL-ENGINE-LIST:CAPS" title="TYPE_HKL_ENGINE_LIST">TYPE_HKL_ENGINE_LIST</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="hkl-hkl-types.html#TYPE-HKL-FACTORY:CAPS" title="TYPE_HKL_FACTORY">TYPE_HKL_FACTORY</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="hkl-hkl-types.html#TYPE-HKL-GEOMETRY:CAPS" title="TYPE_HKL_GEOMETRY">TYPE_HKL_GEOMETRY</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="hkl-hkl-types.html#TYPE-HKL-GEOMETRY-LIST:CAPS" title="TYPE_HKL_GEOMETRY_LIST">TYPE_HKL_GEOMETRY_LIST</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="hkl-hkl-types.html#TYPE-HKL-GEOMETRY-LIST-ITEM:CAPS" title="TYPE_HKL_GEOMETRY_LIST_ITEM">TYPE_HKL_GEOMETRY_LIST_ITEM</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="hkl-hkl-types.html#TYPE-HKL-LATTICE:CAPS" title="TYPE_HKL_LATTICE">TYPE_HKL_LATTICE</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="hkl-hkl-types.html#TYPE-HKL-MATRIX:CAPS" title="TYPE_HKL_MATRIX">TYPE_HKL_MATRIX</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="hkl-hkl-types.html#TYPE-HKL-PARAMETER:CAPS" title="TYPE_HKL_PARAMETER">TYPE_HKL_PARAMETER</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="hkl-hkl-types.html#TYPE-HKL-SAMPLE-REFLECTION:CAPS" title="TYPE_HKL_SAMPLE_REFLECTION">TYPE_HKL_SAMPLE_REFLECTION</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="hkl-hkl-types.html#TYPE-HKL-SAMPLE:CAPS" title="TYPE_HKL_SAMPLE">TYPE_HKL_SAMPLE</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="hkl-hkl-types.html#TYPE-HKL-UNIT:CAPS" title="TYPE_HKL_UNIT">TYPE_HKL_UNIT</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="hkl-hkl-types.html#TYPE-HKL-VECTOR:CAPS" title="TYPE_HKL_VECTOR">TYPE_HKL_VECTOR</a></td>
+</tr>
+</tbody>
+</table></div>
 </div>
 <div class="refsect1">
 <a name="hkl-hkl-types.description"></a><h2>Description</h2>
 </div>
 <div class="refsect1">
-<a name="hkl-hkl-types.details"></a><h2>Details</h2>
+<a name="hkl-hkl-types.functions_details"></a><h2>Functions</h2>
 <div class="refsect2">
 <a name="TYPE-HKL-DETECTOR:CAPS"></a><h3>TYPE_HKL_DETECTOR</h3>
 <pre class="programlisting">#define TYPE_HKL_DETECTOR (hkl_detector_get_type ())
@@ -119,14 +164,14 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="TYPE-HKL-SAMPLE:CAPS"></a><h3>TYPE_HKL_SAMPLE</h3>
-<pre class="programlisting">#define TYPE_HKL_SAMPLE (hkl_sample_get_type ())
+<a name="TYPE-HKL-SAMPLE-REFLECTION:CAPS"></a><h3>TYPE_HKL_SAMPLE_REFLECTION</h3>
+<pre class="programlisting">#define TYPE_HKL_SAMPLE_REFLECTION (hkl_sample_reflection_get_type ())
 </pre>
 </div>
 <hr>
 <div class="refsect2">
-<a name="TYPE-HKL-SAMPLE-REFLECTION:CAPS"></a><h3>TYPE_HKL_SAMPLE_REFLECTION</h3>
-<pre class="programlisting">#define TYPE_HKL_SAMPLE_REFLECTION (hkl_sample_reflection_get_type ())
+<a name="TYPE-HKL-SAMPLE:CAPS"></a><h3>TYPE_HKL_SAMPLE</h3>
+<pre class="programlisting">#define TYPE_HKL_SAMPLE (hkl_sample_get_type ())
 </pre>
 </div>
 <hr>
@@ -142,9 +187,12 @@
 </pre>
 </div>
 </div>
+<div class="refsect1">
+<a name="hkl-hkl-types.other_details"></a><h2>Types and Values</h2>
+</div>
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/Documentation/api/html/hkl-hkl-unit-private.html b/Documentation/api/html/hkl-hkl-unit-private.html
index 6bfbcbc..843d6b8 100644
--- a/Documentation/api/html/hkl-hkl-unit-private.html
+++ b/Documentation/api/html/hkl-hkl-unit-private.html
@@ -2,30 +2,26 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>hkl-unit-private</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<title>hkl Reference Manual: hkl-unit-private</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="hkl Reference Manual">
 <link rel="up" href="ch01.html" title="[Insert title here]">
 <link rel="prev" href="hkl-hkl-types.html" title="hkl-types">
 <link rel="next" href="hkl-hkl-vector-private.html" title="hkl-vector-private">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
-<tr valign="middle">
-<td><a accesskey="p" href="hkl-hkl-types.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">hkl Reference Manual</th>
-<td><a accesskey="n" href="hkl-hkl-vector-private.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
-</tr>
-<tr><td colspan="5" class="shortcuts">
-<a href="#hkl-hkl-unit-private.synopsis" class="shortcut">Top</a>
-                   | 
-                  <a href="#hkl-hkl-unit-private.description" class="shortcut">Description</a>
-</td></tr>
-</table>
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts">
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+                  <a href="#hkl-hkl-unit-private.description" class="shortcut">Description</a></span>
+</td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="p" href="hkl-hkl-types.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="hkl-hkl-vector-private.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
 <div class="refentry">
 <a name="hkl-hkl-unit-private"></a><div class="titlepage"></div>
 <div class="refnamediv"><table width="100%"><tr>
@@ -33,116 +29,195 @@
 <h2><span class="refentrytitle"><a name="hkl-hkl-unit-private.top_of_page"></a>hkl-unit-private</span></h2>
 <p>hkl-unit-private</p>
 </td>
-<td valign="top" align="right"></td>
+<td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
-<div class="refsynopsisdiv">
-<a name="hkl-hkl-unit-private.synopsis"></a><h2>Synopsis</h2>
-<pre class="synopsis">struct              <a class="link" href="hkl-hkl-unit-private.html#HklUnit" title="struct HklUnit">HklUnit</a>;
-enum                <a class="link" href="hkl-hkl-unit-private.html#HklUnitType" title="enum HklUnitType">HklUnitType</a>;
-<span class="returnvalue">int</span>                 <a class="link" href="hkl-hkl-unit-private.html#hkl-unit-compatible" title="hkl_unit_compatible ()">hkl_unit_compatible</a>                 (<em class="parameter"><code>const <a class="link" href="hkl-hkl-unit-private.html#HklUnit" title="struct HklUnit"><span class="type">HklUnit</span></a> *self</code></em>,
-                                                         <em class="parameter"><code>const <a class="link" href="hkl-hkl-unit-private.html#HklUnit" title="struct HklUnit"><span class="type">HklUnit</span></a> *unit</code></em>);
-<a class="link" href="hkl-hkl-unit-private.html#HklUnit" title="struct HklUnit"><span class="returnvalue">HklUnit</span></a> *           <a class="link" href="hkl-hkl-unit-private.html#hkl-unit-dup" title="hkl_unit_dup ()">hkl_unit_dup</a>                        (<em class="parameter"><code>const <a class="link" href="hkl-hkl-unit-private.html#HklUnit" title="struct HklUnit"><span class="type">HklUnit</span></a> *self</code></em>);
-<span class="returnvalue">double</span>              <a class="link" href="hkl-hkl-unit-private.html#hkl-unit-factor" title="hkl_unit_factor ()">hkl_unit_factor</a>                     (<em class="parameter"><code>const <a class="link" href="hkl-hkl-unit-private.html#HklUnit" title="struct HklUnit"><span class="type">HklUnit</span></a> *self</code></em>,
-                                                         <em class="parameter"><code>const <a class="link" href="hkl-hkl-unit-private.html#HklUnit" title="struct HklUnit"><span class="type">HklUnit</span></a> *unit</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="hkl-hkl-unit-private.html#hkl-unit-free" title="hkl_unit_free ()">hkl_unit_free</a>                       (<em class="parameter"><code><a class="link" href="hkl-hkl-unit-private.html#HklUnit" title="struct HklUnit"><span class="type">HklUnit</span></a> *self</code></em>);
-</pre>
+<div class="refsect1">
+<a name="hkl-hkl-unit-private.functions"></a><h2>Functions</h2>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="functions_return">
+<col class="functions_name">
+</colgroup>
+<tbody>
+<tr>
+<td class="function_type">
+<a class="link" href="hkl-hkl-unit-private.html#HklUnit" title="struct HklUnit"><span class="returnvalue">HklUnit</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="hkl-hkl-unit-private.html#hkl-unit-dup" title="hkl_unit_dup ()">hkl_unit_dup</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="hkl-hkl-unit-private.html#hkl-unit-free" title="hkl_unit_free ()">hkl_unit_free</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">int</span>
+</td>
+<td class="function_name">
+<a class="link" href="hkl-hkl-unit-private.html#hkl-unit-compatible" title="hkl_unit_compatible ()">hkl_unit_compatible</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">double</span>
+</td>
+<td class="function_name">
+<a class="link" href="hkl-hkl-unit-private.html#hkl-unit-factor" title="hkl_unit_factor ()">hkl_unit_factor</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="hkl-hkl-unit-private.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="name">
+<col class="description">
+</colgroup>
+<tbody>
+<tr>
+<td class="datatype_keyword">enum</td>
+<td class="function_name"><a class="link" href="hkl-hkl-unit-private.html#HklUnitType" title="enum HklUnitType">HklUnitType</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword">struct</td>
+<td class="function_name"><a class="link" href="hkl-hkl-unit-private.html#HklUnit" title="struct HklUnit">HklUnit</a></td>
+</tr>
+</tbody>
+</table></div>
 </div>
 <div class="refsect1">
 <a name="hkl-hkl-unit-private.description"></a><h2>Description</h2>
 </div>
 <div class="refsect1">
-<a name="hkl-hkl-unit-private.details"></a><h2>Details</h2>
+<a name="hkl-hkl-unit-private.functions_details"></a><h2>Functions</h2>
 <div class="refsect2">
-<a name="HklUnit"></a><h3>struct HklUnit</h3>
-<pre class="programlisting">struct HklUnit {
-	HklUnitType type;
-	char const *name;
-	char const *repr;
-};
-</pre>
+<a name="hkl-unit-dup"></a><h3>hkl_unit_dup ()</h3>
+<pre class="programlisting"><a class="link" href="hkl-hkl-unit-private.html#HklUnit" title="struct HklUnit"><span class="returnvalue">HklUnit</span></a> *
+hkl_unit_dup (<em class="parameter"><code>const <a class="link" href="hkl-hkl-unit-private.html#HklUnit" title="struct HklUnit"><span class="type">HklUnit</span></a> *self</code></em>);</pre>
+<p>copy an <span class="type">Hklunit</span></p>
+<div class="refsect3">
+<a name="id-1.2.30.6.2.5"></a><h4>Returns</h4>
+<p> the copied <a class="link" href="hkl-hkl-unit-private.html#HklUnit" title="struct HklUnit"><span class="type">HklUnit</span></a> (memory must be release with
+hkl_unit_free)</p>
+<p></p>
+</div>
 </div>
 <hr>
 <div class="refsect2">
-<a name="HklUnitType"></a><h3>enum HklUnitType</h3>
-<pre class="programlisting">typedef enum {
-	HKL_UNIT_ANGLE_DEG,
-	HKL_UNIT_ANGLE_RAD,
-	HKL_UNIT_LENGTH_NM
-} HklUnitType;
-</pre>
+<a name="hkl-unit-free"></a><h3>hkl_unit_free ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+hkl_unit_free (<em class="parameter"><code><a class="link" href="hkl-hkl-unit-private.html#HklUnit" title="struct HklUnit"><span class="type">HklUnit</span></a> *self</code></em>);</pre>
+<p>release the memory of an <a class="link" href="hkl-hkl-unit-private.html#HklUnit" title="struct HklUnit"><span class="type">HklUnit</span></a></p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="hkl-unit-compatible"></a><h3>hkl_unit_compatible ()</h3>
-<pre class="programlisting"><span class="returnvalue">int</span>                 hkl_unit_compatible                 (<em class="parameter"><code>const <a class="link" href="hkl-hkl-unit-private.html#HklUnit" title="struct HklUnit"><span class="type">HklUnit</span></a> *self</code></em>,
-                                                         <em class="parameter"><code>const <a class="link" href="hkl-hkl-unit-private.html#HklUnit" title="struct HklUnit"><span class="type">HklUnit</span></a> *unit</code></em>);</pre>
-<p>
-check if two units are compatible.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="hkl-unit-compatible"></a><h3>hkl_unit_compatible ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+hkl_unit_compatible (<em class="parameter"><code>const <a class="link" href="hkl-hkl-unit-private.html#HklUnit" title="struct HklUnit"><span class="type">HklUnit</span></a> *self</code></em>,
+                     <em class="parameter"><code>const <a class="link" href="hkl-hkl-unit-private.html#HklUnit" title="struct HklUnit"><span class="type">HklUnit</span></a> *unit</code></em>);</pre>
+<p>check if two units are compatible.</p>
+<div class="refsect3">
+<a name="id-1.2.30.6.4.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
-<td>the first <em class="parameter"><code>HklUnit</code></em>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>unit</code></em> :</span></p></td>
-<td>the second <em class="parameter"><code>HklUnit</code></em> to check</td>
+<td class="parameter_name"><p>self</p></td>
+<td class="parameter_description"><p>the first <em class="parameter"><code>HklUnit</code></em>
+</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>TRUE or FALSE</td>
+<td class="parameter_name"><p>unit</p></td>
+<td class="parameter_description"><p>the second <em class="parameter"><code>HklUnit</code></em>
+to check</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
 </div>
+<div class="refsect3">
+<a name="id-1.2.30.6.4.6"></a><h4>Returns</h4>
+<p> TRUE or FALSE</p>
+<p></p>
+</div>
+</div>
 <hr>
 <div class="refsect2">
-<a name="hkl-unit-dup"></a><h3>hkl_unit_dup ()</h3>
-<pre class="programlisting"><a class="link" href="hkl-hkl-unit-private.html#HklUnit" title="struct HklUnit"><span class="returnvalue">HklUnit</span></a> *           hkl_unit_dup                        (<em class="parameter"><code>const <a class="link" href="hkl-hkl-unit-private.html#HklUnit" title="struct HklUnit"><span class="type">HklUnit</span></a> *self</code></em>);</pre>
-<p>
-copy an <span class="type">Hklunit</span>
+<a name="hkl-unit-factor"></a><h3>hkl_unit_factor ()</h3>
+<pre class="programlisting"><span class="returnvalue">double</span>
+hkl_unit_factor (<em class="parameter"><code>const <a class="link" href="hkl-hkl-unit-private.html#HklUnit" title="struct HklUnit"><span class="type">HklUnit</span></a> *self</code></em>,
+                 <em class="parameter"><code>const <a class="link" href="hkl-hkl-unit-private.html#HklUnit" title="struct HklUnit"><span class="type">HklUnit</span></a> *unit</code></em>);</pre>
+<p>compute the factor to convert from one <em class="parameter"><code>Hklunit</code></em>
+ to another one.
+<em class="parameter"><code>self</code></em>
+ * factor =  <em class="parameter"><code>unit</code></em>
 </p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody><tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>the copied <a class="link" href="hkl-hkl-unit-private.html#HklUnit" title="struct HklUnit"><span class="type">HklUnit</span></a> (memory must be release with
-hkl_unit_free)</td>
-</tr></tbody>
-</table></div>
+<div class="refsect3">
+<a name="id-1.2.30.6.5.5"></a><h4>Returns</h4>
+<p> the factor of the conversion.</p>
+<p></p>
 </div>
-<hr>
+</div>
+</div>
+<div class="refsect1">
+<a name="hkl-hkl-unit-private.other_details"></a><h2>Types and Values</h2>
 <div class="refsect2">
-<a name="hkl-unit-factor"></a><h3>hkl_unit_factor ()</h3>
-<pre class="programlisting"><span class="returnvalue">double</span>              hkl_unit_factor                     (<em class="parameter"><code>const <a class="link" href="hkl-hkl-unit-private.html#HklUnit" title="struct HklUnit"><span class="type">HklUnit</span></a> *self</code></em>,
-                                                         <em class="parameter"><code>const <a class="link" href="hkl-hkl-unit-private.html#HklUnit" title="struct HklUnit"><span class="type">HklUnit</span></a> *unit</code></em>);</pre>
-<p>
-compute the factor to convert from one <em class="parameter"><code>Hklunit</code></em> to another one.
-<em class="parameter"><code>self</code></em> * factor =  <em class="parameter"><code>unit</code></em>
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody><tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>the factor of the conversion.</td>
-</tr></tbody>
+<a name="HklUnitType"></a><h3>enum HklUnitType</h3>
+<div class="refsect3">
+<a name="id-1.2.30.7.2.3"></a><h4>Members</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="300px" class="enum_members_name">
+<col class="enum_members_description">
+<col width="200px" class="enum_members_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="enum_member_name"><p><a name="HKL-UNIT-ANGLE-DEG:CAPS"></a>HKL_UNIT_ANGLE_DEG</p></td>
+<td> </td>
+<td> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="HKL-UNIT-ANGLE-RAD:CAPS"></a>HKL_UNIT_ANGLE_RAD</p></td>
+<td> </td>
+<td> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="HKL-UNIT-LENGTH-NM:CAPS"></a>HKL_UNIT_LENGTH_NM</p></td>
+<td> </td>
+<td> </td>
+</tr>
+</tbody>
 </table></div>
 </div>
+</div>
 <hr>
 <div class="refsect2">
-<a name="hkl-unit-free"></a><h3>hkl_unit_free ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                hkl_unit_free                       (<em class="parameter"><code><a class="link" href="hkl-hkl-unit-private.html#HklUnit" title="struct HklUnit"><span class="type">HklUnit</span></a> *self</code></em>);</pre>
-<p>
-release the memory of an <a class="link" href="hkl-hkl-unit-private.html#HklUnit" title="struct HklUnit"><span class="type">HklUnit</span></a>
-</p>
+<a name="HklUnit"></a><h3>struct HklUnit</h3>
+<pre class="programlisting">struct HklUnit {
+	HklUnitType type;
+	char const *name;
+	char const *repr;
+};
+</pre>
 </div>
 </div>
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/Documentation/api/html/hkl-hkl-vector-private.html b/Documentation/api/html/hkl-hkl-vector-private.html
index 72e1aa2..6b054d7 100644
--- a/Documentation/api/html/hkl-hkl-vector-private.html
+++ b/Documentation/api/html/hkl-hkl-vector-private.html
@@ -2,30 +2,26 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>hkl-vector-private</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<title>hkl Reference Manual: hkl-vector-private</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="hkl Reference Manual">
 <link rel="up" href="ch01.html" title="[Insert title here]">
 <link rel="prev" href="hkl-hkl-unit-private.html" title="hkl-unit-private">
 <link rel="next" href="hkl-list.html" title="list">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
-<tr valign="middle">
-<td><a accesskey="p" href="hkl-hkl-unit-private.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">hkl Reference Manual</th>
-<td><a accesskey="n" href="hkl-list.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
-</tr>
-<tr><td colspan="5" class="shortcuts">
-<a href="#hkl-hkl-vector-private.synopsis" class="shortcut">Top</a>
-                   | 
-                  <a href="#hkl-hkl-vector-private.description" class="shortcut">Description</a>
-</td></tr>
-</table>
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts">
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+                  <a href="#hkl-hkl-vector-private.description" class="shortcut">Description</a></span>
+</td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="p" href="hkl-hkl-unit-private.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="hkl-list.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
 <div class="refentry">
 <a name="hkl-hkl-vector-private"></a><div class="titlepage"></div>
 <div class="refnamediv"><table width="100%"><tr>
@@ -33,818 +29,1213 @@
 <h2><span class="refentrytitle"><a name="hkl-hkl-vector-private.top_of_page"></a>hkl-vector-private</span></h2>
 <p>hkl-vector-private</p>
 </td>
-<td valign="top" align="right"></td>
+<td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
-<div class="refsynopsisdiv">
-<a name="hkl-hkl-vector-private.synopsis"></a><h2>Synopsis</h2>
-<pre class="synopsis"><span class="returnvalue">void</span>                <a class="link" href="hkl-hkl-vector-private.html#hkl-vector-add-vector" title="hkl_vector_add_vector ()">hkl_vector_add_vector</a>               (<em class="parameter"><code><a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> *self</code></em>,
-                                                         <em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> *vector</code></em>);
-<span class="returnvalue">double</span>              <a class="link" href="hkl-hkl-vector-private.html#hkl-vector-angle" title="hkl_vector_angle ()">hkl_vector_angle</a>                    (<em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> *self</code></em>,
-                                                         <em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> *vector</code></em>);
-<span class="returnvalue">int</span>                 <a class="link" href="hkl-hkl-vector-private.html#hkl-vector-cmp" title="hkl_vector_cmp ()">hkl_vector_cmp</a>                      (<em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> *self</code></em>,
-                                                         <em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> *vector</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="hkl-hkl-vector-private.html#hkl-vector-div-double" title="hkl_vector_div_double ()">hkl_vector_div_double</a>               (<em class="parameter"><code><a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> *self</code></em>,
-                                                         <em class="parameter"><code>const <span class="type">double</span> d</code></em>);
-<a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="returnvalue">HklVector</span></a> *         <a class="link" href="hkl-hkl-vector-private.html#hkl-vector-dup" title="hkl_vector_dup ()">hkl_vector_dup</a>                      (<em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> *self</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="hkl-hkl-vector-private.html#hkl-vector-fprintf" title="hkl_vector_fprintf ()">hkl_vector_fprintf</a>                  (<em class="parameter"><code><span class="type">FILE</span> *file</code></em>,
-                                                         <em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> *self</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="hkl-hkl-vector-private.html#hkl-vector-free" title="hkl_vector_free ()">hkl_vector_free</a>                     (<em class="parameter"><code><a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> *self</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="hkl-hkl-vector-private.html#hkl-vector-init" title="hkl_vector_init ()">hkl_vector_init</a>                     (<em class="parameter"><code><a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> *self</code></em>,
-                                                         <em class="parameter"><code><span class="type">double</span> x</code></em>,
-                                                         <em class="parameter"><code><span class="type">double</span> y</code></em>,
-                                                         <em class="parameter"><code><span class="type">double</span> z</code></em>);
-<span class="returnvalue">int</span>                 <a class="link" href="hkl-hkl-vector-private.html#hkl-vector-is-colinear" title="hkl_vector_is_colinear ()">hkl_vector_is_colinear</a>              (<em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> *self</code></em>,
-                                                         <em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> *vector</code></em>);
-<span class="returnvalue">int</span>                 <a class="link" href="hkl-hkl-vector-private.html#hkl-vector-is-null" title="hkl_vector_is_null ()">hkl_vector_is_null</a>                  (<em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> *self</code></em>);
-<span class="returnvalue">int</span>                 <a class="link" href="hkl-hkl-vector-private.html#hkl-vector-is-opposite" title="hkl_vector_is_opposite ()">hkl_vector_is_opposite</a>              (<em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> *self</code></em>,
-                                                         <em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> *vector</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="hkl-hkl-vector-private.html#hkl-vector-minus-vector" title="hkl_vector_minus_vector ()">hkl_vector_minus_vector</a>             (<em class="parameter"><code><a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> *self</code></em>,
-                                                         <em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> *vector</code></em>);
-<span class="returnvalue">double</span>              <a class="link" href="hkl-hkl-vector-private.html#hkl-vector-norm2" title="hkl_vector_norm2 ()">hkl_vector_norm2</a>                    (<em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> *self</code></em>);
-<span class="returnvalue">int</span>                 <a class="link" href="hkl-hkl-vector-private.html#hkl-vector-normalize" title="hkl_vector_normalize ()">hkl_vector_normalize</a>                (<em class="parameter"><code><a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> *self</code></em>);
-<span class="returnvalue">double</span>              <a class="link" href="hkl-hkl-vector-private.html#hkl-vector-oriented-angle" title="hkl_vector_oriented_angle ()">hkl_vector_oriented_angle</a>           (<em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> *self</code></em>,
-                                                         <em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> *vector</code></em>,
-                                                         <em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> *ref</code></em>);
-<span class="returnvalue">double</span>              <a class="link" href="hkl-hkl-vector-private.html#hkl-vector-oriented-angle-points" title="hkl_vector_oriented_angle_points ()">hkl_vector_oriented_angle_points</a>    (<em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> *self</code></em>,
-                                                         <em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> *p2</code></em>,
-                                                         <em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> *p3</code></em>,
-                                                         <em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> *ref</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="hkl-hkl-vector-private.html#hkl-vector-project-on-plan" title="hkl_vector_project_on_plan ()">hkl_vector_project_on_plan</a>          (<em class="parameter"><code><a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> *self</code></em>,
-                                                         <em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> *normal</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="hkl-hkl-vector-private.html#hkl-vector-project-on-plan-with-point" title="hkl_vector_project_on_plan_with_point ()">hkl_vector_project_on_plan_with_point</a>
-                                                        (<em class="parameter"><code><a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> *self</code></em>,
-                                                         <em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> *normal</code></em>,
-                                                         <em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> *point</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="hkl-hkl-vector-private.html#hkl-vector-randomize" title="hkl_vector_randomize ()">hkl_vector_randomize</a>                (<em class="parameter"><code><a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> *self</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="hkl-hkl-vector-private.html#hkl-vector-randomize-vector" title="hkl_vector_randomize_vector ()">hkl_vector_randomize_vector</a>         (<em class="parameter"><code><a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> *self</code></em>,
-                                                         <em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> *vector</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="hkl-hkl-vector-private.html#hkl-vector-randomize-vector-vector" title="hkl_vector_randomize_vector_vector ()">hkl_vector_randomize_vector_vector</a>  (<em class="parameter"><code><a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> *self</code></em>,
-                                                         <em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> *vector1</code></em>,
-                                                         <em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> *vector2</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="hkl-hkl-vector-private.html#hkl-vector-rotated-around-line" title="hkl_vector_rotated_around_line ()">hkl_vector_rotated_around_line</a>      (<em class="parameter"><code><a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> *self</code></em>,
-                                                         <em class="parameter"><code><span class="type">double</span> angle</code></em>,
-                                                         <em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> *c1</code></em>,
-                                                         <em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> *c2</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="hkl-hkl-vector-private.html#hkl-vector-rotated-around-vector" title="hkl_vector_rotated_around_vector ()">hkl_vector_rotated_around_vector</a>    (<em class="parameter"><code><a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> *self</code></em>,
-                                                         <em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> *axe</code></em>,
-                                                         <em class="parameter"><code><span class="type">double</span> angle</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="hkl-hkl-vector-private.html#hkl-vector-rotated-quaternion" title="hkl_vector_rotated_quaternion ()">hkl_vector_rotated_quaternion</a>       (<em class="parameter"><code><a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> *self</code></em>,
-                                                         <em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklQuaternion" title="struct HklQuaternion"><span class="type">HklQuaternion</span></a> *qr</code></em>);
-<span class="returnvalue">double</span>              <a class="link" href="hkl-hkl-vector-private.html#hkl-vector-scalar-product" title="hkl_vector_scalar_product ()">hkl_vector_scalar_product</a>           (<em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> *self</code></em>,
-                                                         <em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> *vector</code></em>);
-<span class="returnvalue">double</span>              <a class="link" href="hkl-hkl-vector-private.html#hkl-vector-sum" title="hkl_vector_sum ()">hkl_vector_sum</a>                      (<em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> *self</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="hkl-hkl-vector-private.html#hkl-vector-times-double" title="hkl_vector_times_double ()">hkl_vector_times_double</a>             (<em class="parameter"><code><a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> *self</code></em>,
-                                                         <em class="parameter"><code>const <span class="type">double</span> d</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="hkl-hkl-vector-private.html#hkl-vector-times-matrix" title="hkl_vector_times_matrix ()">hkl_vector_times_matrix</a>             (<em class="parameter"><code><a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> *self</code></em>,
-                                                         <em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklMatrix" title="HklMatrix"><span class="type">HklMatrix</span></a> *m</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="hkl-hkl-vector-private.html#hkl-vector-times-vector" title="hkl_vector_times_vector ()">hkl_vector_times_vector</a>             (<em class="parameter"><code><a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> *self</code></em>,
-                                                         <em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> *vector</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="hkl-hkl-vector-private.html#hkl-vector-vectorial-product" title="hkl_vector_vectorial_product ()">hkl_vector_vectorial_product</a>        (<em class="parameter"><code><a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> *self</code></em>,
-                                                         <em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> *vector</code></em>);
-</pre>
-</div>
-<div class="refsect1">
-<a name="hkl-hkl-vector-private.description"></a><h2>Description</h2>
-</div>
 <div class="refsect1">
-<a name="hkl-hkl-vector-private.details"></a><h2>Details</h2>
-<div class="refsect2">
-<a name="hkl-vector-add-vector"></a><h3>hkl_vector_add_vector ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                hkl_vector_add_vector               (<em class="parameter"><code><a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> *self</code></em>,
-                                                         <em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> *vector</code></em>);</pre>
-<p>
-add an <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> to another one.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="hkl-hkl-vector-private.functions"></a><h2>Functions</h2>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="functions_return">
+<col class="functions_name">
+</colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
-<td>the modified <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a>
+<td class="function_type">
+<a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="returnvalue">HklVector</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="hkl-hkl-vector-private.html#hkl-vector-dup" title="hkl_vector_dup ()">hkl_vector_dup</a> <span class="c_punctuation">()</span>
 </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>vector</code></em> :</span></p></td>
-<td>the <span class="type">hklvector</span> to add</td>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="hkl-hkl-vector-private.html#hkl-vector-free" title="hkl_vector_free ()">hkl_vector_free</a> <span class="c_punctuation">()</span>
+</td>
 </tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="hkl-vector-angle"></a><h3>hkl_vector_angle ()</h3>
-<pre class="programlisting"><span class="returnvalue">double</span>              hkl_vector_angle                    (<em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> *self</code></em>,
-                                                         <em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> *vector</code></em>);</pre>
-<p>
-compute the angles beetween two <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a>
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
-<td>the fist <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="hkl-hkl-vector-private.html#hkl-vector-init" title="hkl_vector_init ()">hkl_vector_init</a> <span class="c_punctuation">()</span>
 </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>vector</code></em> :</span></p></td>
-<td>the second <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="hkl-hkl-vector-private.html#hkl-vector-fprintf" title="hkl_vector_fprintf ()">hkl_vector_fprintf</a> <span class="c_punctuation">()</span>
 </td>
 </tr>
 <tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>the return value is in beetween [0, pi]</td>
+<td class="function_type">
+<span class="returnvalue">int</span>
+</td>
+<td class="function_name">
+<a class="link" href="hkl-hkl-vector-private.html#hkl-vector-cmp" title="hkl_vector_cmp ()">hkl_vector_cmp</a> <span class="c_punctuation">()</span>
+</td>
 </tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="hkl-vector-cmp"></a><h3>hkl_vector_cmp ()</h3>
-<pre class="programlisting"><span class="returnvalue">int</span>                 hkl_vector_cmp                      (<em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> *self</code></em>,
-                                                         <em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> *vector</code></em>);</pre>
-<p>
-compare two <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a>. this comparison use HKL_EPSILON
-to do the comparison.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
-<td>the first vector</td>
+<td class="function_type">
+<span class="returnvalue">int</span>
+</td>
+<td class="function_name">
+<a class="link" href="hkl-hkl-vector-private.html#hkl-vector-is-opposite" title="hkl_vector_is_opposite ()">hkl_vector_is_opposite</a> <span class="c_punctuation">()</span>
+</td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>vector</code></em> :</span></p></td>
-<td>th vector to compare with</td>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="hkl-hkl-vector-private.html#hkl-vector-add-vector" title="hkl_vector_add_vector ()">hkl_vector_add_vector</a> <span class="c_punctuation">()</span>
+</td>
 </tr>
 <tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>FALSE if both are equals, TRUE otherwise.</td>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="hkl-hkl-vector-private.html#hkl-vector-minus-vector" title="hkl_vector_minus_vector ()">hkl_vector_minus_vector</a> <span class="c_punctuation">()</span>
+</td>
 </tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="hkl-vector-div-double"></a><h3>hkl_vector_div_double ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                hkl_vector_div_double               (<em class="parameter"><code><a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> *self</code></em>,
-                                                         <em class="parameter"><code>const <span class="type">double</span> d</code></em>);</pre>
-<p>
-divide an <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> by constant.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
-<td>the <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> to divide.</td>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="hkl-hkl-vector-private.html#hkl-vector-div-double" title="hkl_vector_div_double ()">hkl_vector_div_double</a> <span class="c_punctuation">()</span>
+</td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>d</code></em> :</span></p></td>
-<td>constant use to divide the <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="hkl-hkl-vector-private.html#hkl-vector-times-double" title="hkl_vector_times_double ()">hkl_vector_times_double</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="hkl-hkl-vector-private.html#hkl-vector-times-vector" title="hkl_vector_times_vector ()">hkl_vector_times_vector</a> <span class="c_punctuation">()</span>
 </td>
 </tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="hkl-vector-dup"></a><h3>hkl_vector_dup ()</h3>
-<pre class="programlisting"><a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="returnvalue">HklVector</span></a> *         hkl_vector_dup                      (<em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> *self</code></em>);</pre>
-<p>
-Copy an HklVector
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
-<td>the HklVector to copy</td>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="hkl-hkl-vector-private.html#hkl-vector-times-matrix" title="hkl_vector_times_matrix ()">hkl_vector_times_matrix</a> <span class="c_punctuation">()</span>
+</td>
 </tr>
 <tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>A copy of self which need to be free using hkl_vector_free</td>
+<td class="function_type">
+<span class="returnvalue">double</span>
+</td>
+<td class="function_name">
+<a class="link" href="hkl-hkl-vector-private.html#hkl-vector-sum" title="hkl_vector_sum ()">hkl_vector_sum</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">double</span>
+</td>
+<td class="function_name">
+<a class="link" href="hkl-hkl-vector-private.html#hkl-vector-scalar-product" title="hkl_vector_scalar_product ()">hkl_vector_scalar_product</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="hkl-hkl-vector-private.html#hkl-vector-vectorial-product" title="hkl_vector_vectorial_product ()">hkl_vector_vectorial_product</a> <span class="c_punctuation">()</span>
+</td>
 </tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="hkl-vector-fprintf"></a><h3>hkl_vector_fprintf ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                hkl_vector_fprintf                  (<em class="parameter"><code><span class="type">FILE</span> *file</code></em>,
-                                                         <em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> *self</code></em>);</pre>
-<p>
-print an <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> into a stream
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>file</code></em> :</span></p></td>
-<td>the stream to print into</td>
+<td class="function_type">
+<span class="returnvalue">double</span>
+</td>
+<td class="function_name">
+<a class="link" href="hkl-hkl-vector-private.html#hkl-vector-angle" title="hkl_vector_angle ()">hkl_vector_angle</a> <span class="c_punctuation">()</span>
+</td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
-<td>the <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> to print.</td>
+<td class="function_type">
+<span class="returnvalue">double</span>
+</td>
+<td class="function_name">
+<a class="link" href="hkl-hkl-vector-private.html#hkl-vector-oriented-angle" title="hkl_vector_oriented_angle ()">hkl_vector_oriented_angle</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">double</span>
+</td>
+<td class="function_name">
+<a class="link" href="hkl-hkl-vector-private.html#hkl-vector-oriented-angle-points" title="hkl_vector_oriented_angle_points ()">hkl_vector_oriented_angle_points</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">double</span>
+</td>
+<td class="function_name">
+<a class="link" href="hkl-hkl-vector-private.html#hkl-vector-norm2" title="hkl_vector_norm2 ()">hkl_vector_norm2</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">int</span>
+</td>
+<td class="function_name">
+<a class="link" href="hkl-hkl-vector-private.html#hkl-vector-normalize" title="hkl_vector_normalize ()">hkl_vector_normalize</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">int</span>
+</td>
+<td class="function_name">
+<a class="link" href="hkl-hkl-vector-private.html#hkl-vector-is-colinear" title="hkl_vector_is_colinear ()">hkl_vector_is_colinear</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="hkl-hkl-vector-private.html#hkl-vector-randomize" title="hkl_vector_randomize ()">hkl_vector_randomize</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="hkl-hkl-vector-private.html#hkl-vector-randomize-vector" title="hkl_vector_randomize_vector ()">hkl_vector_randomize_vector</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="hkl-hkl-vector-private.html#hkl-vector-randomize-vector-vector" title="hkl_vector_randomize_vector_vector ()">hkl_vector_randomize_vector_vector</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="hkl-hkl-vector-private.html#hkl-vector-rotated-around-vector" title="hkl_vector_rotated_around_vector ()">hkl_vector_rotated_around_vector</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="hkl-hkl-vector-private.html#hkl-vector-rotated-quaternion" title="hkl_vector_rotated_quaternion ()">hkl_vector_rotated_quaternion</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="hkl-hkl-vector-private.html#hkl-vector-rotated-around-line" title="hkl_vector_rotated_around_line ()">hkl_vector_rotated_around_line</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">int</span>
+</td>
+<td class="function_name">
+<a class="link" href="hkl-hkl-vector-private.html#hkl-vector-is-null" title="hkl_vector_is_null ()">hkl_vector_is_null</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="hkl-hkl-vector-private.html#hkl-vector-project-on-plan" title="hkl_vector_project_on_plan ()">hkl_vector_project_on_plan</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="hkl-hkl-vector-private.html#hkl-vector-project-on-plan-with-point" title="hkl_vector_project_on_plan_with_point ()">hkl_vector_project_on_plan_with_point</a> <span class="c_punctuation">()</span>
+</td>
 </tr>
 </tbody>
 </table></div>
 </div>
+<div class="refsect1">
+<a name="hkl-hkl-vector-private.description"></a><h2>Description</h2>
+</div>
+<div class="refsect1">
+<a name="hkl-hkl-vector-private.functions_details"></a><h2>Functions</h2>
+<div class="refsect2">
+<a name="hkl-vector-dup"></a><h3>hkl_vector_dup ()</h3>
+<pre class="programlisting"><a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="returnvalue">HklVector</span></a> *
+hkl_vector_dup (<em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> *self</code></em>);</pre>
+<p>Copy an HklVector</p>
+<div class="refsect3">
+<a name="id-1.2.31.5.2.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>self</p></td>
+<td class="parameter_description"><p>the HklVector to copy</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="id-1.2.31.5.2.6"></a><h4>Returns</h4>
+<p> A copy of self which need to be free using hkl_vector_free</p>
+<p></p>
+</div>
+</div>
 <hr>
 <div class="refsect2">
-<a name="hkl-vector-free"></a><h3>hkl_vector_free ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                hkl_vector_free                     (<em class="parameter"><code><a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> *self</code></em>);</pre>
-<p>
-delete an HklVector struct
-</p>
+<a name="hkl-vector-free"></a><h3>hkl_vector_free ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+hkl_vector_free (<em class="parameter"><code><a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> *self</code></em>);</pre>
+<p>delete an HklVector struct</p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="hkl-vector-init"></a><h3>hkl_vector_init ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                hkl_vector_init                     (<em class="parameter"><code><a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> *self</code></em>,
-                                                         <em class="parameter"><code><span class="type">double</span> x</code></em>,
-                                                         <em class="parameter"><code><span class="type">double</span> y</code></em>,
-                                                         <em class="parameter"><code><span class="type">double</span> z</code></em>);</pre>
-<p>
-initialize an <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a>
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="hkl-vector-init"></a><h3>hkl_vector_init ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+hkl_vector_init (<em class="parameter"><code><a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> *self</code></em>,
+                 <em class="parameter"><code><span class="type">double</span> x</code></em>,
+                 <em class="parameter"><code><span class="type">double</span> y</code></em>,
+                 <em class="parameter"><code><span class="type">double</span> z</code></em>);</pre>
+<p>initialize an <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a></p>
+<div class="refsect3">
+<a name="id-1.2.31.5.4.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
-<td>the <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> to initialize.</td>
+<td class="parameter_name"><p>self</p></td>
+<td class="parameter_description"><p>the <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> to initialize.</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>x</code></em> :</span></p></td>
-<td>the first coordinate value</td>
+<td class="parameter_name"><p>x</p></td>
+<td class="parameter_description"><p>the first coordinate value</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>y</code></em> :</span></p></td>
-<td>the second coordinate value</td>
+<td class="parameter_name"><p>y</p></td>
+<td class="parameter_description"><p>the second coordinate value</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>z</code></em> :</span></p></td>
-<td>the third coordinate value</td>
+<td class="parameter_name"><p>z</p></td>
+<td class="parameter_description"><p>the third coordinate value</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
 </div>
+</div>
 <hr>
 <div class="refsect2">
-<a name="hkl-vector-is-colinear"></a><h3>hkl_vector_is_colinear ()</h3>
-<pre class="programlisting"><span class="returnvalue">int</span>                 hkl_vector_is_colinear              (<em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> *self</code></em>,
-                                                         <em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> *vector</code></em>);</pre>
-<p>
-check if two <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> are colinears
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="hkl-vector-fprintf"></a><h3>hkl_vector_fprintf ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+hkl_vector_fprintf (<em class="parameter"><code><span class="type">FILE</span> *file</code></em>,
+                    <em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> *self</code></em>);</pre>
+<p>print an <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> into a stream</p>
+<div class="refsect3">
+<a name="id-1.2.31.5.5.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
-<td>the first <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a>
-</td>
+<td class="parameter_name"><p>file</p></td>
+<td class="parameter_description"><p>the stream to print into</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>vector</code></em> :</span></p></td>
-<td>the second <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>TRUE if both are colinear.</td>
+<td class="parameter_name"><p>self</p></td>
+<td class="parameter_description"><p>the <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> to print.</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
 </div>
+</div>
 <hr>
 <div class="refsect2">
-<a name="hkl-vector-is-null"></a><h3>hkl_vector_is_null ()</h3>
-<pre class="programlisting"><span class="returnvalue">int</span>                 hkl_vector_is_null                  (<em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> *self</code></em>);</pre>
-<p>
-check if all the coordinates of an <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> are null.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="hkl-vector-cmp"></a><h3>hkl_vector_cmp ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+hkl_vector_cmp (<em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> *self</code></em>,
+                <em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> *vector</code></em>);</pre>
+<p>compare two <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a>. this comparison use HKL_EPSILON
+to do the comparison.</p>
+<div class="refsect3">
+<a name="id-1.2.31.5.6.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
-<td>the <span class="type">hklvector</span> to check</td>
+<td class="parameter_name"><p>self</p></td>
+<td class="parameter_description"><p>the first vector</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>HKl_TRUE if all |elements| are below HKL_EPSILON, HKl_FALSE otherwise
-Todo: test</td>
+<td class="parameter_name"><p>vector</p></td>
+<td class="parameter_description"><p>th vector to compare with</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
 </div>
+<div class="refsect3">
+<a name="id-1.2.31.5.6.6"></a><h4>Returns</h4>
+<p> FALSE if both are equals, TRUE otherwise.</p>
+<p></p>
+</div>
+</div>
 <hr>
 <div class="refsect2">
-<a name="hkl-vector-is-opposite"></a><h3>hkl_vector_is_opposite ()</h3>
-<pre class="programlisting"><span class="returnvalue">int</span>                 hkl_vector_is_opposite              (<em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> *self</code></em>,
-                                                         <em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> *vector</code></em>);</pre>
-<p>
-Check if two vectors are oposite.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody><tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>TRUE is vector are oposite vectors.</td>
-</tr></tbody>
-</table></div>
+<a name="hkl-vector-is-opposite"></a><h3>hkl_vector_is_opposite ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+hkl_vector_is_opposite (<em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> *self</code></em>,
+                        <em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> *vector</code></em>);</pre>
+<p>Check if two vectors are oposite.</p>
+<div class="refsect3">
+<a name="id-1.2.31.5.7.5"></a><h4>Returns</h4>
+<p> TRUE is vector are oposite vectors.</p>
+<p></p>
+</div>
 </div>
 <hr>
 <div class="refsect2">
-<a name="hkl-vector-minus-vector"></a><h3>hkl_vector_minus_vector ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                hkl_vector_minus_vector             (<em class="parameter"><code><a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> *self</code></em>,
-                                                         <em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> *vector</code></em>);</pre>
-<p>
-substract an <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> to another one.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="hkl-vector-add-vector"></a><h3>hkl_vector_add_vector ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+hkl_vector_add_vector (<em class="parameter"><code><a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> *self</code></em>,
+                       <em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> *vector</code></em>);</pre>
+<p>add an <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> to another one.</p>
+<div class="refsect3">
+<a name="id-1.2.31.5.8.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
-<td>the modified <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a>
-</td>
+<td class="parameter_name"><p>self</p></td>
+<td class="parameter_description"><p>the modified <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>vector</code></em> :</span></p></td>
-<td>the <span class="type">hklvector</span> to substract</td>
+<td class="parameter_name"><p>vector</p></td>
+<td class="parameter_description"><p>the <span class="type">hklvector</span> to add</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
 </div>
+</div>
 <hr>
 <div class="refsect2">
-<a name="hkl-vector-norm2"></a><h3>hkl_vector_norm2 ()</h3>
-<pre class="programlisting"><span class="returnvalue">double</span>              hkl_vector_norm2                    (<em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> *self</code></em>);</pre>
-<p>
-compute the norm2 of an <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a>
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="hkl-vector-minus-vector"></a><h3>hkl_vector_minus_vector ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+hkl_vector_minus_vector (<em class="parameter"><code><a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> *self</code></em>,
+                         <em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> *vector</code></em>);</pre>
+<p>substract an <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> to another one.</p>
+<div class="refsect3">
+<a name="id-1.2.31.5.9.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
-<td>the <span class="type">hklvector</span> use to compute the norm2</td>
+<td class="parameter_name"><p>self</p></td>
+<td class="parameter_description"><p>the modified <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>the sqrt(|v|)</td>
+<td class="parameter_name"><p>vector</p></td>
+<td class="parameter_description"><p>the <span class="type">hklvector</span> to substract</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
 </div>
+</div>
 <hr>
 <div class="refsect2">
-<a name="hkl-vector-normalize"></a><h3>hkl_vector_normalize ()</h3>
-<pre class="programlisting"><span class="returnvalue">int</span>                 hkl_vector_normalize                (<em class="parameter"><code><a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> *self</code></em>);</pre>
-<p>
-normalize a hkl_vector
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="hkl-vector-div-double"></a><h3>hkl_vector_div_double ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+hkl_vector_div_double (<em class="parameter"><code><a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> *self</code></em>,
+                       <em class="parameter"><code>const <span class="type">double</span> d</code></em>);</pre>
+<p>divide an <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> by constant.</p>
+<div class="refsect3">
+<a name="id-1.2.31.5.10.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
-<td>the <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> to normalize</td>
+<td class="parameter_name"><p>self</p></td>
+<td class="parameter_description"><p>the <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> to divide.</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>TRUE if the <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> can be normalized, FALSE otherwise</td>
+<td class="parameter_name"><p>d</p></td>
+<td class="parameter_description"><p>constant use to divide the <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
 </div>
+</div>
 <hr>
 <div class="refsect2">
-<a name="hkl-vector-oriented-angle"></a><h3>hkl_vector_oriented_angle ()</h3>
-<pre class="programlisting"><span class="returnvalue">double</span>              hkl_vector_oriented_angle           (<em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> *self</code></em>,
-                                                         <em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> *vector</code></em>,
-                                                         <em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> *ref</code></em>);</pre>
-<p>
-compute the angles beetween two <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> and use
-a reference <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> to orientate the space. That's
-way the return value can be in beetween [-pi, pi].
-the (self, vector, ref) is a right oriented base.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="hkl-vector-times-double"></a><h3>hkl_vector_times_double ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+hkl_vector_times_double (<em class="parameter"><code><a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> *self</code></em>,
+                         <em class="parameter"><code>const <span class="type">double</span> d</code></em>);</pre>
+<p>multiply an <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> by a constant value.</p>
+<div class="refsect3">
+<a name="id-1.2.31.5.11.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
-<td>the first <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>vector</code></em> :</span></p></td>
-<td>the second <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>ref</code></em> :</span></p></td>
-<td>the reference <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a>
-</td>
+<td class="parameter_name"><p>self</p></td>
+<td class="parameter_description"><p>the <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> to modify</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>the angles [-pi, pi]</td>
+<td class="parameter_name"><p>d</p></td>
+<td class="parameter_description"><p>the multiply factor</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
 </div>
+</div>
 <hr>
 <div class="refsect2">
-<a name="hkl-vector-oriented-angle-points"></a><h3>hkl_vector_oriented_angle_points ()</h3>
-<pre class="programlisting"><span class="returnvalue">double</span>              hkl_vector_oriented_angle_points    (<em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> *self</code></em>,
-                                                         <em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> *p2</code></em>,
-                                                         <em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> *p3</code></em>,
-                                                         <em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> *ref</code></em>);</pre>
-<p>
-compute the angles beetween three points (p1, p2, p3) and use
-a reference <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> to orientate the space. That's
-way the return value can be in beetween [-pi, pi].
-the (self, vector, ref) is a right oriented base.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="hkl-vector-times-vector"></a><h3>hkl_vector_times_vector ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+hkl_vector_times_vector (<em class="parameter"><code><a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> *self</code></em>,
+                         <em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> *vector</code></em>);</pre>
+<p>multiply an <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> by another one. This method multiply
+coordinate by coordinate.</p>
+<div class="refsect3">
+<a name="id-1.2.31.5.12.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
-<td>the first point</td>
+<td class="parameter_name"><p>self</p></td>
+<td class="parameter_description"><p>the <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> to modify</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>p2</code></em> :</span></p></td>
-<td>the second point</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>p3</code></em> :</span></p></td>
-<td>the third point</td>
+<td class="parameter_name"><p>vector</p></td>
+<td class="parameter_description"><p>the <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> use to modify the first one</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="hkl-vector-times-matrix"></a><h3>hkl_vector_times_matrix ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+hkl_vector_times_matrix (<em class="parameter"><code><a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> *self</code></em>,
+                         <em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklMatrix" title="HklMatrix"><span class="type">HklMatrix</span></a> *m</code></em>);</pre>
+<p>multiply an <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> by an <a class="link" href="hkl-hkl.html#HklMatrix" title="HklMatrix"><span class="type">HklMatrix</span></a>.
+compute v'= M . v</p>
+<div class="refsect3">
+<a name="id-1.2.31.5.13.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>ref</code></em> :</span></p></td>
-<td>the reference <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a>
-</td>
+<td class="parameter_name"><p>self</p></td>
+<td class="parameter_description"><p>the <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> to multiply</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>the angles [-pi, pi]</td>
+<td class="parameter_name"><p>m</p></td>
+<td class="parameter_description"><p>the <a class="link" href="hkl-hkl.html#HklMatrix" title="HklMatrix"><span class="type">HklMatrix</span></a> use to multiply the <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
 </div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="hkl-vector-sum"></a><h3>hkl_vector_sum ()</h3>
+<pre class="programlisting"><span class="returnvalue">double</span>
+hkl_vector_sum (<em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> *self</code></em>);</pre>
+<p>compute the <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> sum of all its elements.</p>
+<div class="refsect3">
+<a name="id-1.2.31.5.14.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>self</p></td>
+<td class="parameter_description"><p>the <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> to sum.</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="id-1.2.31.5.14.6"></a><h4>Returns</h4>
+<p> the sum of all elements.</p>
+<p></p>
+</div>
+</div>
 <hr>
 <div class="refsect2">
-<a name="hkl-vector-project-on-plan"></a><h3>hkl_vector_project_on_plan ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                hkl_vector_project_on_plan          (<em class="parameter"><code><a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> *self</code></em>,
-                                                         <em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> *normal</code></em>);</pre>
-<p>
-project an <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> on a plan of normal which contain
-the origin [0, 0, 0]
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="hkl-vector-scalar-product"></a><h3>hkl_vector_scalar_product ()</h3>
+<pre class="programlisting"><span class="returnvalue">double</span>
+hkl_vector_scalar_product (<em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> *self</code></em>,
+                           <em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> *vector</code></em>);</pre>
+<p>compute the scalar product of two <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a></p>
+<div class="refsect3">
+<a name="id-1.2.31.5.15.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
-<td>the vector to project</td>
+<td class="parameter_name"><p>self</p></td>
+<td class="parameter_description"><p>the first <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>normal</code></em> :</span></p></td>
-<td>the normal of the plane.</td>
+<td class="parameter_name"><p>vector</p></td>
+<td class="parameter_description"><p>the second <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
 </div>
+<div class="refsect3">
+<a name="id-1.2.31.5.15.6"></a><h4>Returns</h4>
+<p> the scalar product.</p>
+<p></p>
+</div>
+</div>
 <hr>
 <div class="refsect2">
-<a name="hkl-vector-project-on-plan-with-point"></a><h3>hkl_vector_project_on_plan_with_point ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                hkl_vector_project_on_plan_with_point
-                                                        (<em class="parameter"><code><a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> *self</code></em>,
-                                                         <em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> *normal</code></em>,
-                                                         <em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> *point</code></em>);</pre>
-<p>
-project an <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> on a plan of normal <span class="type">normal</span> which contain <span class="type">point</span>.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="hkl-vector-vectorial-product"></a><h3>hkl_vector_vectorial_product ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+hkl_vector_vectorial_product (<em class="parameter"><code><a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> *self</code></em>,
+                              <em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> *vector</code></em>);</pre>
+<p>compute the vectorial product of two vectors</p>
+<div class="refsect3">
+<a name="id-1.2.31.5.16.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
-<td>the vector to project (modify)</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>normal</code></em> :</span></p></td>
-<td>the normal of the plane.</td>
+<td class="parameter_name"><p>self</p></td>
+<td class="parameter_description"><p>the first <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> (modify)</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>point</code></em> :</span></p></td>
-<td>a point of the plan.</td>
+<td class="parameter_name"><p>vector</p></td>
+<td class="parameter_description"><p>the second <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
 </div>
-<hr>
-<div class="refsect2">
-<a name="hkl-vector-randomize"></a><h3>hkl_vector_randomize ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                hkl_vector_randomize                (<em class="parameter"><code><a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> *self</code></em>);</pre>
-<p>
-initialize a vector with random values.
-coordinates range [-1, 1]
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody><tr>
-<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
-<td>the <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> to randomize</td>
-</tr></tbody>
-</table></div>
 </div>
 <hr>
 <div class="refsect2">
-<a name="hkl-vector-randomize-vector"></a><h3>hkl_vector_randomize_vector ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                hkl_vector_randomize_vector         (<em class="parameter"><code><a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> *self</code></em>,
-                                                         <em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> *vector</code></em>);</pre>
-<p>
-randomize an <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> an be sure that it is not equal
-to the <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> vector.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="hkl-vector-angle"></a><h3>hkl_vector_angle ()</h3>
+<pre class="programlisting"><span class="returnvalue">double</span>
+hkl_vector_angle (<em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> *self</code></em>,
+                  <em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> *vector</code></em>);</pre>
+<p>compute the angles beetween two <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a></p>
+<div class="refsect3">
+<a name="id-1.2.31.5.17.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
-<td>the <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> to randomize</td>
+<td class="parameter_name"><p>self</p></td>
+<td class="parameter_description"><p>the fist <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>vector</code></em> :</span></p></td>
-<td>the <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> result to avoid</td>
+<td class="parameter_name"><p>vector</p></td>
+<td class="parameter_description"><p>the second <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
 </div>
+<div class="refsect3">
+<a name="id-1.2.31.5.17.6"></a><h4>Returns</h4>
+<p> the return value is in beetween [0, pi]</p>
+<p></p>
+</div>
+</div>
 <hr>
 <div class="refsect2">
-<a name="hkl-vector-randomize-vector-vector"></a><h3>hkl_vector_randomize_vector_vector ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                hkl_vector_randomize_vector_vector  (<em class="parameter"><code><a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> *self</code></em>,
-                                                         <em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> *vector1</code></em>,
-                                                         <em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> *vector2</code></em>);</pre>
-<p>
-randomize an <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> an be sure that it is not equal
-to the <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> vector1 and vector2.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="hkl-vector-oriented-angle"></a><h3>hkl_vector_oriented_angle ()</h3>
+<pre class="programlisting"><span class="returnvalue">double</span>
+hkl_vector_oriented_angle (<em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> *self</code></em>,
+                           <em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> *vector</code></em>,
+                           <em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> *ref</code></em>);</pre>
+<p>compute the angles beetween two <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> and use
+a reference <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> to orientate the space. That's
+way the return value can be in beetween [-pi, pi].
+the (self, vector, ref) is a right oriented base.</p>
+<div class="refsect3">
+<a name="id-1.2.31.5.18.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
-<td>the <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> to randomize</td>
+<td class="parameter_name"><p>self</p></td>
+<td class="parameter_description"><p>the first <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>vector1</code></em> :</span></p></td>
-<td>the first <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> solution to avoid</td>
+<td class="parameter_name"><p>vector</p></td>
+<td class="parameter_description"><p>the second <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>vector2</code></em> :</span></p></td>
-<td>the second <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> solution to avoid</td>
+<td class="parameter_name"><p>ref</p></td>
+<td class="parameter_description"><p>the reference <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
 </div>
+<div class="refsect3">
+<a name="id-1.2.31.5.18.6"></a><h4>Returns</h4>
+<p> the angles [-pi, pi]</p>
+<p></p>
+</div>
+</div>
 <hr>
 <div class="refsect2">
-<a name="hkl-vector-rotated-around-line"></a><h3>hkl_vector_rotated_around_line ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                hkl_vector_rotated_around_line      (<em class="parameter"><code><a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> *self</code></em>,
-                                                         <em class="parameter"><code><span class="type">double</span> angle</code></em>,
-                                                         <em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> *c1</code></em>,
-                                                         <em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> *c2</code></em>);</pre>
-<p>
-This method rotate a point around a line defined by two points
-of a certain amount of angle. The rotation is right handed.
-this mean that c2 - c1 gives the direction of the rotation.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="hkl-vector-oriented-angle-points"></a><h3>hkl_vector_oriented_angle_points ()</h3>
+<pre class="programlisting"><span class="returnvalue">double</span>
+hkl_vector_oriented_angle_points (<em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> *self</code></em>,
+                                  <em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> *p2</code></em>,
+                                  <em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> *p3</code></em>,
+                                  <em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> *ref</code></em>);</pre>
+<p>compute the angles beetween three points (p1, p2, p3) and use
+a reference <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> to orientate the space. That's
+way the return value can be in beetween [-pi, pi].
+the (self, vector, ref) is a right oriented base.</p>
+<div class="refsect3">
+<a name="id-1.2.31.5.19.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
-<td>the point to rotate around a line</td>
+<td class="parameter_name"><p>self</p></td>
+<td class="parameter_description"><p>the first point</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>angle</code></em> :</span></p></td>
-<td>the angle of the rotation</td>
+<td class="parameter_name"><p>p2</p></td>
+<td class="parameter_description"><p>the second point</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>c1</code></em> :</span></p></td>
-<td>the fist point of the line</td>
+<td class="parameter_name"><p>p3</p></td>
+<td class="parameter_description"><p>the third point</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>c2</code></em> :</span></p></td>
-<td>the second point of the line</td>
+<td class="parameter_name"><p>ref</p></td>
+<td class="parameter_description"><p>the reference <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
 </div>
+<div class="refsect3">
+<a name="id-1.2.31.5.19.6"></a><h4>Returns</h4>
+<p> the angles [-pi, pi]</p>
+<p></p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="hkl-vector-norm2"></a><h3>hkl_vector_norm2 ()</h3>
+<pre class="programlisting"><span class="returnvalue">double</span>
+hkl_vector_norm2 (<em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> *self</code></em>);</pre>
+<p>compute the norm2 of an <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a></p>
+<div class="refsect3">
+<a name="id-1.2.31.5.20.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>self</p></td>
+<td class="parameter_description"><p>the <span class="type">hklvector</span> use to compute the norm2</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="id-1.2.31.5.20.6"></a><h4>Returns</h4>
+<p> the sqrt(|v|)</p>
+<p></p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="hkl-vector-normalize"></a><h3>hkl_vector_normalize ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+hkl_vector_normalize (<em class="parameter"><code><a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> *self</code></em>);</pre>
+<p>normalize a hkl_vector</p>
+<div class="refsect3">
+<a name="id-1.2.31.5.21.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>self</p></td>
+<td class="parameter_description"><p>the <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> to normalize</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="id-1.2.31.5.21.6"></a><h4>Returns</h4>
+<p> TRUE if the <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> can be normalized, FALSE otherwise</p>
+<p></p>
+</div>
+</div>
 <hr>
 <div class="refsect2">
-<a name="hkl-vector-rotated-around-vector"></a><h3>hkl_vector_rotated_around_vector ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                hkl_vector_rotated_around_vector    (<em class="parameter"><code><a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> *self</code></em>,
-                                                         <em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> *axe</code></em>,
-                                                         <em class="parameter"><code><span class="type">double</span> angle</code></em>);</pre>
-<p>
-rotate a vector around another one with a given angle.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="hkl-vector-is-colinear"></a><h3>hkl_vector_is_colinear ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+hkl_vector_is_colinear (<em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> *self</code></em>,
+                        <em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> *vector</code></em>);</pre>
+<p>check if two <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> are colinears</p>
+<div class="refsect3">
+<a name="id-1.2.31.5.22.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
-<td>the <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> to rotate</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>axe</code></em> :</span></p></td>
-<td>the axe of rotation</td>
+<td class="parameter_name"><p>self</p></td>
+<td class="parameter_description"><p>the first <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>angle</code></em> :</span></p></td>
-<td>the angle of the rotation</td>
+<td class="parameter_name"><p>vector</p></td>
+<td class="parameter_description"><p>the second <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
 </div>
+<div class="refsect3">
+<a name="id-1.2.31.5.22.6"></a><h4>Returns</h4>
+<p> TRUE if both are colinear.</p>
+<p></p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="hkl-vector-randomize"></a><h3>hkl_vector_randomize ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+hkl_vector_randomize (<em class="parameter"><code><a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> *self</code></em>);</pre>
+<p>initialize a vector with random values.
+coordinates range [-1, 1]</p>
+<div class="refsect3">
+<a name="id-1.2.31.5.23.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>self</p></td>
+<td class="parameter_description"><p>the <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> to randomize</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+</div>
 <hr>
 <div class="refsect2">
-<a name="hkl-vector-rotated-quaternion"></a><h3>hkl_vector_rotated_quaternion ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                hkl_vector_rotated_quaternion       (<em class="parameter"><code><a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> *self</code></em>,
-                                                         <em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklQuaternion" title="struct HklQuaternion"><span class="type">HklQuaternion</span></a> *qr</code></em>);</pre>
-<p>
-rotate an <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> using an <a class="link" href="hkl-hkl.html#HklQuaternion" title="struct HklQuaternion"><span class="type">HklQuaternion</span></a>.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="hkl-vector-randomize-vector"></a><h3>hkl_vector_randomize_vector ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+hkl_vector_randomize_vector (<em class="parameter"><code><a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> *self</code></em>,
+                             <em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> *vector</code></em>);</pre>
+<p>randomize an <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> an be sure that it is not equal
+to the <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> vector.</p>
+<div class="refsect3">
+<a name="id-1.2.31.5.24.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
-<td>the <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> to rotate</td>
+<td class="parameter_name"><p>self</p></td>
+<td class="parameter_description"><p>the <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> to randomize</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>qr</code></em> :</span></p></td>
-<td>the <a class="link" href="hkl-hkl.html#HklQuaternion" title="struct HklQuaternion"><span class="type">HklQuaternion</span></a> use to rotate the vector</td>
+<td class="parameter_name"><p>vector</p></td>
+<td class="parameter_description"><p>the <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> result to avoid</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
 </div>
+</div>
 <hr>
 <div class="refsect2">
-<a name="hkl-vector-scalar-product"></a><h3>hkl_vector_scalar_product ()</h3>
-<pre class="programlisting"><span class="returnvalue">double</span>              hkl_vector_scalar_product           (<em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> *self</code></em>,
-                                                         <em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> *vector</code></em>);</pre>
-<p>
-compute the scalar product of two <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a>
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="hkl-vector-randomize-vector-vector"></a><h3>hkl_vector_randomize_vector_vector ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+hkl_vector_randomize_vector_vector (<em class="parameter"><code><a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> *self</code></em>,
+                                    <em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> *vector1</code></em>,
+                                    <em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> *vector2</code></em>);</pre>
+<p>randomize an <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> an be sure that it is not equal
+to the <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> vector1 and vector2.</p>
+<div class="refsect3">
+<a name="id-1.2.31.5.25.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
-<td>the first <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a>
-</td>
+<td class="parameter_name"><p>self</p></td>
+<td class="parameter_description"><p>the <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> to randomize</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>vector</code></em> :</span></p></td>
-<td>the second <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a>
-</td>
+<td class="parameter_name"><p>vector1</p></td>
+<td class="parameter_description"><p>the first <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> solution to avoid</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>the scalar product.</td>
+<td class="parameter_name"><p>vector2</p></td>
+<td class="parameter_description"><p>the second <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> solution to avoid</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
 </div>
+</div>
 <hr>
 <div class="refsect2">
-<a name="hkl-vector-sum"></a><h3>hkl_vector_sum ()</h3>
-<pre class="programlisting"><span class="returnvalue">double</span>              hkl_vector_sum                      (<em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> *self</code></em>);</pre>
-<p>
-compute the <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> sum of all its elements.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="hkl-vector-rotated-around-vector"></a><h3>hkl_vector_rotated_around_vector ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+hkl_vector_rotated_around_vector (<em class="parameter"><code><a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> *self</code></em>,
+                                  <em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> *axe</code></em>,
+                                  <em class="parameter"><code><span class="type">double</span> angle</code></em>);</pre>
+<p>rotate a vector around another one with a given angle.</p>
+<div class="refsect3">
+<a name="id-1.2.31.5.26.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
-<td>the <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> to sum.</td>
+<td class="parameter_name"><p>self</p></td>
+<td class="parameter_description"><p>the <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> to rotate</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>axe</p></td>
+<td class="parameter_description"><p>the axe of rotation</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>the sum of all elements.</td>
+<td class="parameter_name"><p>angle</p></td>
+<td class="parameter_description"><p>the angle of the rotation</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
 </div>
+</div>
 <hr>
 <div class="refsect2">
-<a name="hkl-vector-times-double"></a><h3>hkl_vector_times_double ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                hkl_vector_times_double             (<em class="parameter"><code><a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> *self</code></em>,
-                                                         <em class="parameter"><code>const <span class="type">double</span> d</code></em>);</pre>
-<p>
-multiply an <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> by a constant value.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="hkl-vector-rotated-quaternion"></a><h3>hkl_vector_rotated_quaternion ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+hkl_vector_rotated_quaternion (<em class="parameter"><code><a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> *self</code></em>,
+                               <em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklQuaternion" title="struct HklQuaternion"><span class="type">HklQuaternion</span></a> *qr</code></em>);</pre>
+<p>rotate an <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> using an <a class="link" href="hkl-hkl.html#HklQuaternion" title="struct HklQuaternion"><span class="type">HklQuaternion</span></a>.</p>
+<div class="refsect3">
+<a name="id-1.2.31.5.27.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
-<td>the <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> to modify</td>
+<td class="parameter_name"><p>self</p></td>
+<td class="parameter_description"><p>the <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> to rotate</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>d</code></em> :</span></p></td>
-<td>the multiply factor</td>
+<td class="parameter_name"><p>qr</p></td>
+<td class="parameter_description"><p>the <a class="link" href="hkl-hkl.html#HklQuaternion" title="struct HklQuaternion"><span class="type">HklQuaternion</span></a> use to rotate the vector</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
 </div>
+</div>
 <hr>
 <div class="refsect2">
-<a name="hkl-vector-times-matrix"></a><h3>hkl_vector_times_matrix ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                hkl_vector_times_matrix             (<em class="parameter"><code><a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> *self</code></em>,
-                                                         <em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklMatrix" title="HklMatrix"><span class="type">HklMatrix</span></a> *m</code></em>);</pre>
-<p>
-multiply an <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> by an <a class="link" href="hkl-hkl.html#HklMatrix" title="HklMatrix"><span class="type">HklMatrix</span></a>.
-compute v'= M . v
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="hkl-vector-rotated-around-line"></a><h3>hkl_vector_rotated_around_line ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+hkl_vector_rotated_around_line (<em class="parameter"><code><a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> *self</code></em>,
+                                <em class="parameter"><code><span class="type">double</span> angle</code></em>,
+                                <em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> *c1</code></em>,
+                                <em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> *c2</code></em>);</pre>
+<p>This method rotate a point around a line defined by two points
+of a certain amount of angle. The rotation is right handed.
+this mean that c2 - c1 gives the direction of the rotation.</p>
+<div class="refsect3">
+<a name="id-1.2.31.5.28.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
-<td>the <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> to multiply</td>
+<td class="parameter_name"><p>self</p></td>
+<td class="parameter_description"><p>the point to rotate around a line</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>m</code></em> :</span></p></td>
-<td>the <a class="link" href="hkl-hkl.html#HklMatrix" title="HklMatrix"><span class="type">HklMatrix</span></a> use to multiply the <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a>
-</td>
+<td class="parameter_name"><p>angle</p></td>
+<td class="parameter_description"><p>the angle of the rotation</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>c1</p></td>
+<td class="parameter_description"><p>the fist point of the line</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>c2</p></td>
+<td class="parameter_description"><p>the second point of the line</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
 </div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="hkl-vector-is-null"></a><h3>hkl_vector_is_null ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+hkl_vector_is_null (<em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> *self</code></em>);</pre>
+<p>check if all the coordinates of an <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> are null.</p>
+<div class="refsect3">
+<a name="id-1.2.31.5.29.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>self</p></td>
+<td class="parameter_description"><p>the <span class="type">hklvector</span> to check</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="id-1.2.31.5.29.6"></a><h4>Returns</h4>
+<p> HKl_TRUE if all |elements| are below HKL_EPSILON, HKl_FALSE otherwise</p>
+<p>Todo: test</p>
+<p></p>
+</div>
+</div>
 <hr>
 <div class="refsect2">
-<a name="hkl-vector-times-vector"></a><h3>hkl_vector_times_vector ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                hkl_vector_times_vector             (<em class="parameter"><code><a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> *self</code></em>,
-                                                         <em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> *vector</code></em>);</pre>
-<p>
-multiply an <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> by another one. This method multiply
-coordinate by coordinate.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="hkl-vector-project-on-plan"></a><h3>hkl_vector_project_on_plan ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+hkl_vector_project_on_plan (<em class="parameter"><code><a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> *self</code></em>,
+                            <em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> *normal</code></em>);</pre>
+<p>project an <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> on a plan of normal which contain
+the origin [0, 0, 0]</p>
+<div class="refsect3">
+<a name="id-1.2.31.5.30.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
-<td>the <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> to modify</td>
+<td class="parameter_name"><p>self</p></td>
+<td class="parameter_description"><p>the vector to project</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>vector</code></em> :</span></p></td>
-<td>the <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> use to modify the first one</td>
+<td class="parameter_name"><p>normal</p></td>
+<td class="parameter_description"><p>the normal of the plane.</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
 </div>
+</div>
 <hr>
 <div class="refsect2">
-<a name="hkl-vector-vectorial-product"></a><h3>hkl_vector_vectorial_product ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                hkl_vector_vectorial_product        (<em class="parameter"><code><a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> *self</code></em>,
-                                                         <em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> *vector</code></em>);</pre>
-<p>
-compute the vectorial product of two vectors
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="hkl-vector-project-on-plan-with-point"></a><h3>hkl_vector_project_on_plan_with_point ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+hkl_vector_project_on_plan_with_point (<em class="parameter"><code><a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> *self</code></em>,
+                                       <em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> *normal</code></em>,
+                                       <em class="parameter"><code>const <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> *point</code></em>);</pre>
+<p>project an <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> on a plan of normal <span class="type">normal</span> which contain <span class="type">point</span>.</p>
+<div class="refsect3">
+<a name="id-1.2.31.5.31.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
-<td>the first <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a> (modify)</td>
+<td class="parameter_name"><p>self</p></td>
+<td class="parameter_description"><p>the vector to project (modify)</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>vector</code></em> :</span></p></td>
-<td>the second <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector"><span class="type">HklVector</span></a>
-</td>
+<td class="parameter_name"><p>normal</p></td>
+<td class="parameter_description"><p>the normal of the plane.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>point</p></td>
+<td class="parameter_description"><p>a point of the plan.</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
 </div>
 </div>
 </div>
+<div class="refsect1">
+<a name="hkl-hkl-vector-private.other_details"></a><h2>Types and Values</h2>
+</div>
+</div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/Documentation/api/html/hkl-hkl.html b/Documentation/api/html/hkl-hkl.html
index 0314ef1..8800264 100644
--- a/Documentation/api/html/hkl-hkl.html
+++ b/Documentation/api/html/hkl-hkl.html
@@ -2,30 +2,26 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>hkl</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<title>hkl Reference Manual: hkl</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="hkl Reference Manual">
 <link rel="up" href="ch01.html" title="[Insert title here]">
 <link rel="prev" href="hkl-darray.html" title="darray">
 <link rel="next" href="hkl-hkl-axis-private.html" title="hkl-axis-private">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
-<tr valign="middle">
-<td><a accesskey="p" href="hkl-darray.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">hkl Reference Manual</th>
-<td><a accesskey="n" href="hkl-hkl-axis-private.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
-</tr>
-<tr><td colspan="5" class="shortcuts">
-<a href="#hkl-hkl.synopsis" class="shortcut">Top</a>
-                   | 
-                  <a href="#hkl-hkl.description" class="shortcut">Description</a>
-</td></tr>
-</table>
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts">
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+                  <a href="#hkl-hkl.description" class="shortcut">Description</a></span>
+</td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="p" href="hkl-darray.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="hkl-hkl-axis-private.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
 <div class="refentry">
 <a name="hkl-hkl"></a><div class="titlepage"></div>
 <div class="refnamediv"><table width="100%"><tr>
@@ -33,61 +29,178 @@
 <h2><span class="refentrytitle"><a name="hkl-hkl.top_of_page"></a>hkl</span></h2>
 <p>hkl</p>
 </td>
-<td valign="top" align="right"></td>
+<td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
-<div class="refsynopsisdiv">
-<a name="hkl-hkl.synopsis"></a><h2>Synopsis</h2>
-<pre class="synopsis">#define             <a class="link" href="hkl-hkl.html#HKLAPI:CAPS" title="HKLAPI">HKLAPI</a>
-#define             <a class="link" href="hkl-hkl.html#HKL-ARG-NONNULL:CAPS" title="HKL_ARG_NONNULL()">HKL_ARG_NONNULL</a>                     (...)
-#define             <a class="link" href="hkl-hkl.html#HKL-DEGTORAD:CAPS" title="HKL_DEGTORAD">HKL_DEGTORAD</a>
-#define             <a class="link" href="hkl-hkl.html#HKL-DEPRECATED:CAPS" title="HKL_DEPRECATED">HKL_DEPRECATED</a>
-#define             <a class="link" href="hkl-hkl.html#HKL-DEPRECATED-FOR:CAPS" title="HKL_DEPRECATED_FOR()">HKL_DEPRECATED_FOR</a>                  (f)
-#define             <a class="link" href="hkl-hkl.html#HKL-EPSILON:CAPS" title="HKL_EPSILON">HKL_EPSILON</a>
-#define             <a class="link" href="hkl-hkl.html#HKL-GEOMETRY-LIST-FOREACH:CAPS" title="HKL_GEOMETRY_LIST_FOREACH()">HKL_GEOMETRY_LIST_FOREACH</a>           (item,
-                                                         list)
-#define             <a class="link" href="hkl-hkl.html#HKL-RADTODEG:CAPS" title="HKL_RADTODEG">HKL_RADTODEG</a>
-#define             <a class="link" href="hkl-hkl.html#HKL-SAMPLE-REFLECTIONS-FOREACH:CAPS" title="HKL_SAMPLE_REFLECTIONS_FOREACH()">HKL_SAMPLE_REFLECTIONS_FOREACH</a>      (_item,
-                                                         _list)
-#define             <a class="link" href="hkl-hkl.html#HKL-TAU:CAPS" title="HKL_TAU">HKL_TAU</a>
-#define             <a class="link" href="hkl-hkl.html#HKL-TINY:CAPS" title="HKL_TINY">HKL_TINY</a>
-#define             <a class="link" href="hkl-hkl.html#HKL-WARN-UNUSED-RESULT:CAPS" title="HKL_WARN_UNUSED_RESULT">HKL_WARN_UNUSED_RESULT</a>
-                    <a class="link" href="hkl-hkl.html#HklDetector" title="HklDetector">HklDetector</a>;
-enum                <a class="link" href="hkl-hkl.html#HklDetectorType" title="enum HklDetectorType">HklDetectorType</a>;
-                    <a class="link" href="hkl-hkl.html#HklEngine" title="HklEngine">HklEngine</a>;
-enum                <a class="link" href="hkl-hkl.html#HklEngineAxisNamesGet" title="enum HklEngineAxisNamesGet">HklEngineAxisNamesGet</a>;
-enum                <a class="link" href="hkl-hkl.html#HklEngineCapabilities" title="enum HklEngineCapabilities">HklEngineCapabilities</a>;
-enum                <a class="link" href="hkl-hkl.html#HklEngineDependencies" title="enum HklEngineDependencies">HklEngineDependencies</a>;
-                    <a class="link" href="hkl-hkl.html#HklEngineList" title="HklEngineList">HklEngineList</a>;
-                    <a class="link" href="hkl-hkl.html#HklFactory" title="HklFactory">HklFactory</a>;
-                    <a class="link" href="hkl-hkl.html#HklGeometry" title="HklGeometry">HklGeometry</a>;
-                    <a class="link" href="hkl-hkl.html#HklGeometryList" title="HklGeometryList">HklGeometryList</a>;
-                    <a class="link" href="hkl-hkl.html#HklGeometryListItem" title="HklGeometryListItem">HklGeometryListItem</a>;
-                    <a class="link" href="hkl-hkl.html#HklLattice" title="HklLattice">HklLattice</a>;
-                    <a class="link" href="hkl-hkl.html#HklMatrix" title="HklMatrix">HklMatrix</a>;
-                    <a class="link" href="hkl-hkl.html#HklParameter" title="HklParameter">HklParameter</a>;
-struct              <a class="link" href="hkl-hkl.html#HklQuaternion" title="struct HklQuaternion">HklQuaternion</a>;
-                    <a class="link" href="hkl-hkl.html#HklSample" title="HklSample">HklSample</a>;
-                    <a class="link" href="hkl-hkl.html#HklSampleReflection" title="HklSampleReflection">HklSampleReflection</a>;
-enum                <a class="link" href="hkl-hkl.html#HklUnitEnum" title="enum HklUnitEnum">HklUnitEnum</a>;
-struct              <a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector">HklVector</a>;
-typedef             <a class="link" href="hkl-hkl.html#darray-engine" title="darray_engine">darray_engine</a>;
-typedef             <a class="link" href="hkl-hkl.html#darray-string" title="darray_string">darray_string</a>;
-</pre>
+<div class="refsect1">
+<a name="hkl-hkl.functions"></a><h2>Functions</h2>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="functions_return">
+<col class="functions_name">
+</colgroup>
+<tbody>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name">
+<a class="link" href="hkl-hkl.html#HKL-DEPRECATED-FOR:CAPS" title="HKL_DEPRECATED_FOR()">HKL_DEPRECATED_FOR</a><span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="hkl-hkl.html#HKL-DEGTORAD:CAPS" title="HKL_DEGTORAD">HKL_DEGTORAD</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="hkl-hkl.html#HKL-RADTODEG:CAPS" title="HKL_RADTODEG">HKL_RADTODEG</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="hkl-hkl.html#HKL-TAU:CAPS" title="HKL_TAU">HKL_TAU</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name">
+<a class="link" href="hkl-hkl.html#HKL-ARG-NONNULL:CAPS" title="HKL_ARG_NONNULL()">HKL_ARG_NONNULL</a><span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name">
+<a class="link" href="hkl-hkl.html#HKL-GEOMETRY-LIST-FOREACH:CAPS" title="HKL_GEOMETRY_LIST_FOREACH()">HKL_GEOMETRY_LIST_FOREACH</a><span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name">
+<a class="link" href="hkl-hkl.html#HKL-SAMPLE-REFLECTIONS-FOREACH:CAPS" title="HKL_SAMPLE_REFLECTIONS_FOREACH()">HKL_SAMPLE_REFLECTIONS_FOREACH</a><span class="c_punctuation">()</span>
+</td>
+</tr>
+</tbody>
+</table></div>
 </div>
 <div class="refsect1">
-<a name="hkl-hkl.description"></a><h2>Description</h2>
+<a name="hkl-hkl.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="name">
+<col class="description">
+</colgroup>
+<tbody>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="hkl-hkl.html#HKL-DEPRECATED:CAPS" title="HKL_DEPRECATED">HKL_DEPRECATED</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="hkl-hkl.html#HKL-TINY:CAPS" title="HKL_TINY">HKL_TINY</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="hkl-hkl.html#HKL-EPSILON:CAPS" title="HKL_EPSILON">HKL_EPSILON</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="hkl-hkl.html#HKLAPI:CAPS" title="HKLAPI">HKLAPI</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="hkl-hkl.html#HKL-WARN-UNUSED-RESULT:CAPS" title="HKL_WARN_UNUSED_RESULT">HKL_WARN_UNUSED_RESULT</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword">struct</td>
+<td class="function_name"><a class="link" href="hkl-hkl.html#HklVector" title="struct HklVector">HklVector</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword">struct</td>
+<td class="function_name"><a class="link" href="hkl-hkl.html#HklQuaternion" title="struct HklQuaternion">HklQuaternion</a></td>
+</tr>
+<tr>
+<td class="typedef_keyword">typedef</td>
+<td class="function_name"><a class="link" href="hkl-hkl.html#darray-string" title="darray_string">darray_string</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword">enum</td>
+<td class="function_name"><a class="link" href="hkl-hkl.html#HklUnitEnum" title="enum HklUnitEnum">HklUnitEnum</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword">enum</td>
+<td class="function_name"><a class="link" href="hkl-hkl.html#HklDetectorType" title="enum HklDetectorType">HklDetectorType</a></td>
+</tr>
+<tr>
+<td class="typedef_keyword">typedef</td>
+<td class="function_name"><a class="link" href="hkl-hkl.html#darray-engine" title="darray_engine">darray_engine</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword">enum</td>
+<td class="function_name"><a class="link" href="hkl-hkl.html#HklEngineCapabilities" title="enum HklEngineCapabilities">HklEngineCapabilities</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword">enum</td>
+<td class="function_name"><a class="link" href="hkl-hkl.html#HklEngineAxisNamesGet" title="enum HklEngineAxisNamesGet">HklEngineAxisNamesGet</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword">enum</td>
+<td class="function_name"><a class="link" href="hkl-hkl.html#HklEngineDependencies" title="enum HklEngineDependencies">HklEngineDependencies</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword"> </td>
+<td class="function_name"><a class="link" href="hkl-hkl.html#HklGeometryListItem" title="HklGeometryListItem">HklGeometryListItem</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword"> </td>
+<td class="function_name"><a class="link" href="hkl-hkl.html#HklFactory" title="HklFactory">HklFactory</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword"> </td>
+<td class="function_name"><a class="link" href="hkl-hkl.html#HklGeometry" title="HklGeometry">HklGeometry</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword"> </td>
+<td class="function_name"><a class="link" href="hkl-hkl.html#HklParameter" title="HklParameter">HklParameter</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword"> </td>
+<td class="function_name"><a class="link" href="hkl-hkl.html#HklEngine" title="HklEngine">HklEngine</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword"> </td>
+<td class="function_name"><a class="link" href="hkl-hkl.html#HklMatrix" title="HklMatrix">HklMatrix</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword"> </td>
+<td class="function_name"><a class="link" href="hkl-hkl.html#HklSampleReflection" title="HklSampleReflection">HklSampleReflection</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword"> </td>
+<td class="function_name"><a class="link" href="hkl-hkl.html#HklSample" title="HklSample">HklSample</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword"> </td>
+<td class="function_name"><a class="link" href="hkl-hkl.html#HklEngineList" title="HklEngineList">HklEngineList</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword"> </td>
+<td class="function_name"><a class="link" href="hkl-hkl.html#HklDetector" title="HklDetector">HklDetector</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword"> </td>
+<td class="function_name"><a class="link" href="hkl-hkl.html#HklLattice" title="HklLattice">HklLattice</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword"> </td>
+<td class="function_name"><a class="link" href="hkl-hkl.html#HklGeometryList" title="HklGeometryList">HklGeometryList</a></td>
+</tr>
+</tbody>
+</table></div>
 </div>
 <div class="refsect1">
-<a name="hkl-hkl.details"></a><h2>Details</h2>
-<div class="refsect2">
-<a name="HKLAPI:CAPS"></a><h3>HKLAPI</h3>
-<pre class="programlisting">#  define HKLAPI __attribute__ ((visibility("default")))
-</pre>
+<a name="hkl-hkl.description"></a><h2>Description</h2>
 </div>
-<hr>
+<div class="refsect1">
+<a name="hkl-hkl.functions_details"></a><h2>Functions</h2>
 <div class="refsect2">
-<a name="HKL-ARG-NONNULL:CAPS"></a><h3>HKL_ARG_NONNULL()</h3>
-<pre class="programlisting"># define HKL_ARG_NONNULL(...) __attribute__ ((__nonnull__(__VA_ARGS__)))
+<a name="HKL-DEPRECATED-FOR:CAPS"></a><h3>HKL_DEPRECATED_FOR()</h3>
+<pre class="programlisting"># define HKL_DEPRECATED_FOR(f) __attribute__((__deprecated__("Use '" #f "' instead")))
 </pre>
 </div>
 <hr>
@@ -98,20 +211,20 @@ typedef             <a class="link" href="hkl-hkl.html#darray-string" title="dar
 </div>
 <hr>
 <div class="refsect2">
-<a name="HKL-DEPRECATED:CAPS"></a><h3>HKL_DEPRECATED</h3>
-<pre class="programlisting"># define HKL_DEPRECATED __attribute__((__deprecated__))
+<a name="HKL-RADTODEG:CAPS"></a><h3>HKL_RADTODEG</h3>
+<pre class="programlisting">#define HKL_RADTODEG (180./M_PI)
 </pre>
 </div>
 <hr>
 <div class="refsect2">
-<a name="HKL-DEPRECATED-FOR:CAPS"></a><h3>HKL_DEPRECATED_FOR()</h3>
-<pre class="programlisting"># define HKL_DEPRECATED_FOR(f) __attribute__((__deprecated__("Use '" #f "' instead")))
+<a name="HKL-TAU:CAPS"></a><h3>HKL_TAU</h3>
+<pre class="programlisting">#define HKL_TAU (2. * M_PI)
 </pre>
 </div>
 <hr>
 <div class="refsect2">
-<a name="HKL-EPSILON:CAPS"></a><h3>HKL_EPSILON</h3>
-<pre class="programlisting">#define HKL_EPSILON 1e-6
+<a name="HKL-ARG-NONNULL:CAPS"></a><h3>HKL_ARG_NONNULL()</h3>
+<pre class="programlisting"># define HKL_ARG_NONNULL(...) __attribute__ ((__nonnull__(__VA_ARGS__)))
 </pre>
 </div>
 <hr>
@@ -121,25 +234,33 @@ typedef             <a class="link" href="hkl-hkl.html#darray-string" title="dar
 </div>
 <hr>
 <div class="refsect2">
-<a name="HKL-RADTODEG:CAPS"></a><h3>HKL_RADTODEG</h3>
-<pre class="programlisting">#define HKL_RADTODEG (180./M_PI)
+<a name="HKL-SAMPLE-REFLECTIONS-FOREACH:CAPS"></a><h3>HKL_SAMPLE_REFLECTIONS_FOREACH()</h3>
+<pre class="programlisting">#define             HKL_SAMPLE_REFLECTIONS_FOREACH(_item, _list)</pre>
+</div>
+</div>
+<div class="refsect1">
+<a name="hkl-hkl.other_details"></a><h2>Types and Values</h2>
+<div class="refsect2">
+<a name="HKL-DEPRECATED:CAPS"></a><h3>HKL_DEPRECATED</h3>
+<pre class="programlisting"># define HKL_DEPRECATED __attribute__((__deprecated__))
 </pre>
 </div>
 <hr>
 <div class="refsect2">
-<a name="HKL-SAMPLE-REFLECTIONS-FOREACH:CAPS"></a><h3>HKL_SAMPLE_REFLECTIONS_FOREACH()</h3>
-<pre class="programlisting">#define             HKL_SAMPLE_REFLECTIONS_FOREACH(_item, _list)</pre>
+<a name="HKL-TINY:CAPS"></a><h3>HKL_TINY</h3>
+<pre class="programlisting">#define HKL_TINY 1e-7
+</pre>
 </div>
 <hr>
 <div class="refsect2">
-<a name="HKL-TAU:CAPS"></a><h3>HKL_TAU</h3>
-<pre class="programlisting">#define HKL_TAU (2. * M_PI)
+<a name="HKL-EPSILON:CAPS"></a><h3>HKL_EPSILON</h3>
+<pre class="programlisting">#define HKL_EPSILON 1e-6
 </pre>
 </div>
 <hr>
 <div class="refsect2">
-<a name="HKL-TINY:CAPS"></a><h3>HKL_TINY</h3>
-<pre class="programlisting">#define HKL_TINY 1e-7
+<a name="HKLAPI:CAPS"></a><h3>HKLAPI</h3>
+<pre class="programlisting">#  define HKLAPI __attribute__ ((visibility("default")))
 </pre>
 </div>
 <hr>
@@ -150,80 +271,172 @@ typedef             <a class="link" href="hkl-hkl.html#darray-string" title="dar
 </div>
 <hr>
 <div class="refsect2">
-<a name="HklDetector"></a><h3>HklDetector</h3>
-<pre class="programlisting">typedef struct {
-	size_t idx;
-	HklHolder const *holder;
-} HklDetector;
+<a name="HklVector"></a><h3>struct HklVector</h3>
+<pre class="programlisting">struct HklVector {
+	double data[3];
+};
 </pre>
 </div>
 <hr>
 <div class="refsect2">
-<a name="HklDetectorType"></a><h3>enum HklDetectorType</h3>
-<pre class="programlisting">typedef enum {
-	HKL_DETECTOR_TYPE_0D
-} HklDetectorType;
+<a name="HklQuaternion"></a><h3>struct HklQuaternion</h3>
+<pre class="programlisting">struct HklQuaternion {
+	double data[4];
+};
 </pre>
 </div>
 <hr>
 <div class="refsect2">
-<a name="HklEngine"></a><h3>HklEngine</h3>
-<pre class="programlisting">typedef struct {
-	const HklEngineInfo *info;
-	const HklEngineOperations *ops;
-	HklGeometry *geometry;
-	HklDetector *detector;
-	HklSample *sample;
-	HklMode *mode; /* not owned */
-	HklEngineList *engines; /* not owned */
-	darray_parameter axes;
-	darray_parameter pseudo_axes;
-	darray_string pseudo_axis_names;
-	darray_mode modes;
-	darray_string mode_names;
-} HklEngine;
+<a name="darray-string"></a><h3>darray_string</h3>
+<pre class="programlisting">typedef darray(const char *) darray_string;
 </pre>
 </div>
 <hr>
 <div class="refsect2">
-<a name="HklEngineAxisNamesGet"></a><h3>enum HklEngineAxisNamesGet</h3>
-<pre class="programlisting">typedef enum {
-	HKL_ENGINE_AXIS_NAMES_GET_READ,
-	HKL_ENGINE_AXIS_NAMES_GET_WRITE,
-} HklEngineAxisNamesGet;
+<a name="HklUnitEnum"></a><h3>enum HklUnitEnum</h3>
+<div class="refsect3">
+<a name="id-1.2.9.7.10.3"></a><h4>Members</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="300px" class="enum_members_name">
+<col class="enum_members_description">
+<col width="200px" class="enum_members_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="enum_member_name"><p><a name="HKL-UNIT-DEFAULT:CAPS"></a>HKL_UNIT_DEFAULT</p></td>
+<td> </td>
+<td> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="HKL-UNIT-USER:CAPS"></a>HKL_UNIT_USER</p></td>
+<td> </td>
+<td> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="HklDetectorType"></a><h3>enum HklDetectorType</h3>
+<div class="refsect3">
+<a name="id-1.2.9.7.11.3"></a><h4>Members</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="300px" class="enum_members_name">
+<col class="enum_members_description">
+<col width="200px" class="enum_members_annotations">
+</colgroup>
+<tbody><tr>
+<td class="enum_member_name"><p><a name="HKL-DETECTOR-TYPE-0D:CAPS"></a>HKL_DETECTOR_TYPE_0D</p></td>
+<td> </td>
+<td> </td>
+</tr></tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="darray-engine"></a><h3>darray_engine</h3>
+<pre class="programlisting">typedef darray(HklEngine *) darray_engine;
 </pre>
 </div>
 <hr>
 <div class="refsect2">
 <a name="HklEngineCapabilities"></a><h3>enum HklEngineCapabilities</h3>
-<pre class="programlisting">typedef enum {
-	HKL_ENGINE_CAPABILITIES_READABLE = 1u << 0,
-	HKL_ENGINE_CAPABILITIES_WRITABLE = 1u << 1,
-	HKL_ENGINE_CAPABILITIES_INITIALIZABLE = 1u << 2,
-} HklEngineCapabilities;
-</pre>
+<div class="refsect3">
+<a name="id-1.2.9.7.13.3"></a><h4>Members</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="300px" class="enum_members_name">
+<col class="enum_members_description">
+<col width="200px" class="enum_members_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="enum_member_name"><p><a name="HKL-ENGINE-CAPABILITIES-READABLE:CAPS"></a>HKL_ENGINE_CAPABILITIES_READABLE</p></td>
+<td> </td>
+<td> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="HKL-ENGINE-CAPABILITIES-WRITABLE:CAPS"></a>HKL_ENGINE_CAPABILITIES_WRITABLE</p></td>
+<td> </td>
+<td> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="HKL-ENGINE-CAPABILITIES-INITIALIZABLE:CAPS"></a>HKL_ENGINE_CAPABILITIES_INITIALIZABLE</p></td>
+<td> </td>
+<td> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="HklEngineAxisNamesGet"></a><h3>enum HklEngineAxisNamesGet</h3>
+<div class="refsect3">
+<a name="id-1.2.9.7.14.3"></a><h4>Members</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="300px" class="enum_members_name">
+<col class="enum_members_description">
+<col width="200px" class="enum_members_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="enum_member_name"><p><a name="HKL-ENGINE-AXIS-NAMES-GET-READ:CAPS"></a>HKL_ENGINE_AXIS_NAMES_GET_READ</p></td>
+<td> </td>
+<td> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="HKL-ENGINE-AXIS-NAMES-GET-WRITE:CAPS"></a>HKL_ENGINE_AXIS_NAMES_GET_WRITE</p></td>
+<td> </td>
+<td> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="HklEngineDependencies"></a><h3>enum HklEngineDependencies</h3>
-<pre class="programlisting">typedef enum {
-	HKL_ENGINE_DEPENDENCIES_AXES = 1u << 0,
-	HKL_ENGINE_DEPENDENCIES_ENERGY = 1u << 1,
-	HKL_ENGINE_DEPENDENCIES_SAMPLE = 1u << 2,
-} HklEngineDependencies;
-</pre>
+<div class="refsect3">
+<a name="id-1.2.9.7.15.3"></a><h4>Members</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="300px" class="enum_members_name">
+<col class="enum_members_description">
+<col width="200px" class="enum_members_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="enum_member_name"><p><a name="HKL-ENGINE-DEPENDENCIES-AXES:CAPS"></a>HKL_ENGINE_DEPENDENCIES_AXES</p></td>
+<td> </td>
+<td> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="HKL-ENGINE-DEPENDENCIES-ENERGY:CAPS"></a>HKL_ENGINE_DEPENDENCIES_ENERGY</p></td>
+<td> </td>
+<td> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="HKL-ENGINE-DEPENDENCIES-SAMPLE:CAPS"></a>HKL_ENGINE_DEPENDENCIES_SAMPLE</p></td>
+<td> </td>
+<td> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
 </div>
 <hr>
 <div class="refsect2">
-<a name="HklEngineList"></a><h3>HklEngineList</h3>
+<a name="HklGeometryListItem"></a><h3>HklGeometryListItem</h3>
 <pre class="programlisting">typedef struct {
-	_darray(HklEngine *);
-	HklGeometryList *geometries;
+	struct list_node list;
 	HklGeometry *geometry;
-	HklDetector *detector;
-	HklSample *sample;
-	darray_parameter pseudo_axes;
-} HklEngineList;
+} HklGeometryListItem;
 </pre>
 </div>
 <hr>
@@ -251,35 +464,37 @@ typedef             <a class="link" href="hkl-hkl.html#darray-string" title="dar
 </div>
 <hr>
 <div class="refsect2">
-<a name="HklGeometryList"></a><h3>HklGeometryList</h3>
+<a name="HklParameter"></a><h3>HklParameter</h3>
 <pre class="programlisting">typedef struct {
-	HklGeometryListMultiplyFunction multiply;
-	struct list_head items;
-	size_t n_items;
-} HklGeometryList;
+	const char *name;
+	const char *description;
+	HklInterval range;
+	double _value;
+	const HklUnit *unit;
+	const HklUnit *punit;
+	int fit;
+	int changed;
+	const HklParameterOperations *ops;
+} HklParameter;
 </pre>
 </div>
 <hr>
 <div class="refsect2">
-<a name="HklGeometryListItem"></a><h3>HklGeometryListItem</h3>
+<a name="HklEngine"></a><h3>HklEngine</h3>
 <pre class="programlisting">typedef struct {
-	struct list_node list;
+	const HklEngineInfo *info;
+	const HklEngineOperations *ops;
 	HklGeometry *geometry;
-} HklGeometryListItem;
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="HklLattice"></a><h3>HklLattice</h3>
-<pre class="programlisting">typedef struct {
-	HklParameter *a;
-	HklParameter *b;
-	HklParameter *c;
-	HklParameter *alpha;
-	HklParameter *beta;
-	HklParameter *gamma;
-	HklParameter *volume;
-} HklLattice;
+	HklDetector *detector;
+	HklSample *sample;
+	HklMode *mode; /* not owned */
+	HklEngineList *engines; /* not owned */
+	darray_parameter axes;
+	darray_parameter pseudo_axes;
+	darray_string pseudo_axis_names;
+	darray_mode modes;
+	darray_string mode_names;
+} HklEngine;
 </pre>
 </div>
 <hr>
@@ -292,26 +507,15 @@ typedef             <a class="link" href="hkl-hkl.html#darray-string" title="dar
 </div>
 <hr>
 <div class="refsect2">
-<a name="HklParameter"></a><h3>HklParameter</h3>
+<a name="HklSampleReflection"></a><h3>HklSampleReflection</h3>
 <pre class="programlisting">typedef struct {
-	const char *name;
-	const char *description;
-	HklInterval range;
-	double _value;
-	const HklUnit *unit;
-	const HklUnit *punit;
-	int fit;
-	int changed;
-	const HklParameterOperations *ops;
-} HklParameter;
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="HklQuaternion"></a><h3>struct HklQuaternion</h3>
-<pre class="programlisting">struct HklQuaternion {
-	double data[4];
-};
+	HklGeometry *geometry;
+	HklDetector *detector;
+	HklVector hkl;
+	HklVector _hkl;
+	int flag;
+	struct list_node list;
+} HklSampleReflection;
 </pre>
 </div>
 <hr>
@@ -332,50 +536,54 @@ typedef             <a class="link" href="hkl-hkl.html#darray-string" title="dar
 </div>
 <hr>
 <div class="refsect2">
-<a name="HklSampleReflection"></a><h3>HklSampleReflection</h3>
+<a name="HklEngineList"></a><h3>HklEngineList</h3>
 <pre class="programlisting">typedef struct {
+	_darray(HklEngine *);
+	HklGeometryList *geometries;
 	HklGeometry *geometry;
 	HklDetector *detector;
-	HklVector hkl;
-	HklVector _hkl;
-	int flag;
-	struct list_node list;
-} HklSampleReflection;
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="HklUnitEnum"></a><h3>enum HklUnitEnum</h3>
-<pre class="programlisting">typedef enum {
-	HKL_UNIT_DEFAULT,
-	HKL_UNIT_USER
-} HklUnitEnum;
+	HklSample *sample;
+	darray_parameter pseudo_axes;
+} HklEngineList;
 </pre>
 </div>
 <hr>
 <div class="refsect2">
-<a name="HklVector"></a><h3>struct HklVector</h3>
-<pre class="programlisting">struct HklVector {
-	double data[3];
-};
+<a name="HklDetector"></a><h3>HklDetector</h3>
+<pre class="programlisting">typedef struct {
+	size_t idx;
+	HklHolder const *holder;
+} HklDetector;
 </pre>
 </div>
 <hr>
 <div class="refsect2">
-<a name="darray-engine"></a><h3>darray_engine</h3>
-<pre class="programlisting">typedef darray(HklEngine *) darray_engine;
+<a name="HklLattice"></a><h3>HklLattice</h3>
+<pre class="programlisting">typedef struct {
+	HklParameter *a;
+	HklParameter *b;
+	HklParameter *c;
+	HklParameter *alpha;
+	HklParameter *beta;
+	HklParameter *gamma;
+	HklParameter *volume;
+} HklLattice;
 </pre>
 </div>
 <hr>
 <div class="refsect2">
-<a name="darray-string"></a><h3>darray_string</h3>
-<pre class="programlisting">typedef darray(const char *) darray_string;
+<a name="HklGeometryList"></a><h3>HklGeometryList</h3>
+<pre class="programlisting">typedef struct {
+	HklGeometryListMultiplyFunction multiply;
+	struct list_head items;
+	size_t n_items;
+} HklGeometryList;
 </pre>
 </div>
 </div>
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/Documentation/api/html/hkl-list.html b/Documentation/api/html/hkl-list.html
index 6975d19..8e9c9e3 100644
--- a/Documentation/api/html/hkl-list.html
+++ b/Documentation/api/html/hkl-list.html
@@ -2,30 +2,26 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>list</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<title>hkl Reference Manual: list</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="hkl Reference Manual">
 <link rel="up" href="ch01.html" title="[Insert title here]">
 <link rel="prev" href="hkl-hkl-vector-private.html" title="hkl-vector-private">
 <link rel="next" href="hkl-noerr.html" title="noerr">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
-<tr valign="middle">
-<td><a accesskey="p" href="hkl-hkl-vector-private.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">hkl Reference Manual</th>
-<td><a accesskey="n" href="hkl-noerr.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
-</tr>
-<tr><td colspan="5" class="shortcuts">
-<a href="#hkl-list.synopsis" class="shortcut">Top</a>
-                   | 
-                  <a href="#hkl-list.description" class="shortcut">Description</a>
-</td></tr>
-</table>
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts">
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+                  <a href="#hkl-list.description" class="shortcut">Description</a></span>
+</td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="p" href="hkl-hkl-vector-private.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="hkl-noerr.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
 <div class="refentry">
 <a name="hkl-list"></a><div class="titlepage"></div>
 <div class="refnamediv"><table width="100%"><tr>
@@ -33,216 +29,374 @@
 <h2><span class="refentrytitle"><a name="hkl-list.top_of_page"></a>list</span></h2>
 <p>list</p>
 </td>
-<td valign="top" align="right"></td>
+<td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
-<div class="refsynopsisdiv">
-<a name="hkl-list.synopsis"></a><h2>Synopsis</h2>
-<pre class="synopsis">#define             <a class="link" href="hkl-list.html#LIST-HEAD:CAPS" title="LIST_HEAD()">LIST_HEAD</a>                           (name)
-#define             <a class="link" href="hkl-list.html#LIST-HEAD-INIT:CAPS" title="LIST_HEAD_INIT()">LIST_HEAD_INIT</a>                      (name)
-#define             <a class="link" href="hkl-list.html#LIST-LOC:CAPS" title="LIST_LOC">LIST_LOC</a>
-#define             <a class="link" href="hkl-list.html#list-add" title="list_add()">list_add</a>                            (h,
-                                                         n)
-#define             <a class="link" href="hkl-list.html#list-add-off" title="list_add_off()">list_add_off</a>                        (h,
-                                                         n,
-                                                         off)
-#define             <a class="link" href="hkl-list.html#list-add-tail" title="list_add_tail()">list_add_tail</a>                       (h,
-                                                         n)
-#define             <a class="link" href="hkl-list.html#list-append-list" title="list_append_list()">list_append_list</a>                    (t,
-                                                         f)
-struct <a href="/usr/share/gtk-doc/html/hkl/hkl-list.html#list-head"><span class="returnvalue">list_head</span></a> *  <a class="link" href="hkl-list.html#list-check" title="list_check ()">list_check</a>                          (<em class="parameter"><code>const <span class="type">struct list_head</span> *h</code></em>,
-                                                         <em class="parameter"><code>const <span class="type">char</span> *abortstr</code></em>);
-struct <a href="/usr/share/gtk-doc/html/hkl/hkl-list.html#list-node"><span class="returnvalue">list_node</span></a> *  <a class="link" href="hkl-list.html#list-check-node" title="list_check_node ()">list_check_node</a>                     (<em class="parameter"><code>const <span class="type">struct list_node</span> *n</code></em>,
-                                                         <em class="parameter"><code>const <span class="type">char</span> *abortstr</code></em>);
-#define             <a class="link" href="hkl-list.html#list-debug" title="list_debug()">list_debug</a>                          (h,
-                                                         loc)
-#define             <a class="link" href="hkl-list.html#list-debug-node" title="list_debug_node()">list_debug_node</a>                     (n,
-                                                         loc)
-#define             <a class="link" href="hkl-list.html#list-del" title="list_del()">list_del</a>                            (n)
-#define             <a class="link" href="hkl-list.html#list-del-from-off" title="list_del_from_off()">list_del_from_off</a>                   (h,
-                                                         n,
-                                                         off)
-#define             <a class="link" href="hkl-list.html#list-del-off" title="list_del_off()">list_del_off</a>                        (n,
-                                                         off)
-#define             <a class="link" href="hkl-list.html#list-empty" title="list_empty()">list_empty</a>                          (h)
-#define             <a class="link" href="hkl-list.html#list-empty-nodebug" title="list_empty_nodebug()">list_empty_nodebug</a>                  (h)
-#define             <a class="link" href="hkl-list.html#list-entry" title="list_entry()">list_entry</a>                          (n,
-                                                         type,
-                                                         member)
-#define             <a class="link" href="hkl-list.html#list-entry-off" title="list_entry_off()">list_entry_off</a>                      (n,
-                                                         type,
-                                                         off)
-#define             <a class="link" href="hkl-list.html#list-for-each" title="list_for_each()">list_for_each</a>                       (h,
-                                                         i,
-                                                         member)
-#define             <a class="link" href="hkl-list.html#list-for-each-off" title="list_for_each_off()">list_for_each_off</a>                   (h,
-                                                         i,
-                                                         off)
-#define             <a class="link" href="hkl-list.html#list-for-each-rev" title="list_for_each_rev()">list_for_each_rev</a>                   (h,
-                                                         i,
-                                                         member)
-#define             <a class="link" href="hkl-list.html#list-for-each-safe" title="list_for_each_safe()">list_for_each_safe</a>                  (h,
-                                                         i,
-                                                         nxt,
-                                                         member)
-#define             <a class="link" href="hkl-list.html#list-for-each-safe-off" title="list_for_each_safe_off()">list_for_each_safe_off</a>              (h,
-                                                         i,
-                                                         nxt,
-                                                         off)
-#define             <a class="link" href="hkl-list.html#list-head-off" title="list_head_off()">list_head_off</a>                       (h,
-                                                         type,
-                                                         off)
-#define             <a class="link" href="hkl-list.html#list-next" title="list_next()">list_next</a>                           (h,
-                                                         i,
-                                                         member)
-#define             <a class="link" href="hkl-list.html#list-off-" title="list_off_()">list_off_</a>                           (type,
-                                                         member)
-#define             <a class="link" href="hkl-list.html#list-off-var-" title="list_off_var_()">list_off_var_</a>                       (var,
-                                                         member)
-#define             <a class="link" href="hkl-list.html#list-pop" title="list_pop()">list_pop</a>                            (h,
-                                                         type,
-                                                         member)
-#define             <a class="link" href="hkl-list.html#list-prepend-list" title="list_prepend_list()">list_prepend_list</a>                   (t,
-                                                         f)
-#define             <a class="link" href="hkl-list.html#list-prev" title="list_prev()">list_prev</a>                           (h,
-                                                         i,
-                                                         member)
-#define             <a class="link" href="hkl-list.html#list-tail" title="list_tail()">list_tail</a>                           (h,
-                                                         type,
-                                                         member)
-#define             <a class="link" href="hkl-list.html#list-tail-off" title="list_tail_off()">list_tail_off</a>                       (h,
-                                                         type,
-                                                         off)
-#define             <a class="link" href="hkl-list.html#list-top" title="list_top()">list_top</a>                            (h,
-                                                         type,
-                                                         member)
-#define             <a class="link" href="hkl-list.html#list-typeof" title="list_typeof()">list_typeof</a>                         (var)
-</pre>
+<div class="refsect1">
+<a name="hkl-list.functions"></a><h2>Functions</h2>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="functions_return">
+<col class="functions_name">
+</colgroup>
+<tbody>
+<tr>
+<td class="function_type">struct <a class="link" href="hkl-list.html#list-head" title="struct list_head"><span class="returnvalue">list_head</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="hkl-list.html#list-check" title="list_check ()">list_check</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">struct <a class="link" href="hkl-list.html#list-node" title="struct list_node"><span class="returnvalue">list_node</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="hkl-list.html#list-check-node" title="list_check_node ()">list_check_node</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name">
+<a class="link" href="hkl-list.html#list-debug" title="list_debug()">list_debug</a><span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name">
+<a class="link" href="hkl-list.html#list-debug-node" title="list_debug_node()">list_debug_node</a><span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name">
+<a class="link" href="hkl-list.html#LIST-HEAD-INIT:CAPS" title="LIST_HEAD_INIT()">LIST_HEAD_INIT</a><span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name">
+<a class="link" href="hkl-list.html#LIST-HEAD:CAPS" title="LIST_HEAD()">LIST_HEAD</a><span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name">
+<a class="link" href="hkl-list.html#list-add" title="list_add()">list_add</a><span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name">
+<a class="link" href="hkl-list.html#list-add-tail" title="list_add_tail()">list_add_tail</a><span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name">
+<a class="link" href="hkl-list.html#list-empty" title="list_empty()">list_empty</a><span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name">
+<a class="link" href="hkl-list.html#list-empty-nodebug" title="list_empty_nodebug()">list_empty_nodebug</a><span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name">
+<a class="link" href="hkl-list.html#list-del" title="list_del()">list_del</a><span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name">
+<a class="link" href="hkl-list.html#list-entry" title="list_entry()">list_entry</a><span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name">
+<a class="link" href="hkl-list.html#list-top" title="list_top()">list_top</a><span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name">
+<a class="link" href="hkl-list.html#list-pop" title="list_pop()">list_pop</a><span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name">
+<a class="link" href="hkl-list.html#list-tail" title="list_tail()">list_tail</a><span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name">
+<a class="link" href="hkl-list.html#list-for-each" title="list_for_each()">list_for_each</a><span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name">
+<a class="link" href="hkl-list.html#list-for-each-rev" title="list_for_each_rev()">list_for_each_rev</a><span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name">
+<a class="link" href="hkl-list.html#list-for-each-safe" title="list_for_each_safe()">list_for_each_safe</a><span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name">
+<a class="link" href="hkl-list.html#list-next" title="list_next()">list_next</a><span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name">
+<a class="link" href="hkl-list.html#list-prev" title="list_prev()">list_prev</a><span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name">
+<a class="link" href="hkl-list.html#list-append-list" title="list_append_list()">list_append_list</a><span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name">
+<a class="link" href="hkl-list.html#list-prepend-list" title="list_prepend_list()">list_prepend_list</a><span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name">
+<a class="link" href="hkl-list.html#list-for-each-off" title="list_for_each_off()">list_for_each_off</a><span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name">
+<a class="link" href="hkl-list.html#list-for-each-safe-off" title="list_for_each_safe_off()">list_for_each_safe_off</a><span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name">
+<a class="link" href="hkl-list.html#list-entry-off" title="list_entry_off()">list_entry_off</a><span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name">
+<a class="link" href="hkl-list.html#list-head-off" title="list_head_off()">list_head_off</a><span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name">
+<a class="link" href="hkl-list.html#list-tail-off" title="list_tail_off()">list_tail_off</a><span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name">
+<a class="link" href="hkl-list.html#list-add-off" title="list_add_off()">list_add_off</a><span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name">
+<a class="link" href="hkl-list.html#list-del-off" title="list_del_off()">list_del_off</a><span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name">
+<a class="link" href="hkl-list.html#list-del-from-off" title="list_del_from_off()">list_del_from_off</a><span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name">
+<a class="link" href="hkl-list.html#list-off-" title="list_off_()">list_off_</a><span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name">
+<a class="link" href="hkl-list.html#list-off-var-" title="list_off_var_()">list_off_var_</a><span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name">
+<a class="link" href="hkl-list.html#list-typeof" title="list_typeof()">list_typeof</a><span class="c_punctuation">()</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="hkl-list.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="name">
+<col class="description">
+</colgroup>
+<tbody>
+<tr>
+<td class="datatype_keyword">struct</td>
+<td class="function_name"><a class="link" href="hkl-list.html#list-node" title="struct list_node">list_node</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword">struct</td>
+<td class="function_name"><a class="link" href="hkl-list.html#list-head" title="struct list_head">list_head</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="hkl-list.html#LIST-LOC:CAPS" title="LIST_LOC">LIST_LOC</a></td>
+</tr>
+</tbody>
+</table></div>
 </div>
 <div class="refsect1">
 <a name="hkl-list.description"></a><h2>Description</h2>
 </div>
 <div class="refsect1">
-<a name="hkl-list.details"></a><h2>Details</h2>
+<a name="hkl-list.functions_details"></a><h2>Functions</h2>
 <div class="refsect2">
-<a name="LIST-HEAD:CAPS"></a><h3>LIST_HEAD()</h3>
-<pre class="programlisting">#define             LIST_HEAD(name)</pre>
+<a name="list-check"></a><h3>list_check ()</h3>
+<pre class="programlisting">struct <a class="link" href="hkl-list.html#list-head" title="struct list_head"><span class="returnvalue">list_head</span></a> *
+list_check (<em class="parameter"><code>const <span class="type">struct list_head</span> *h</code></em>,
+            <em class="parameter"><code>const <span class="type">char</span> *abortstr</code></em>);</pre>
 </div>
 <hr>
 <div class="refsect2">
-<a name="LIST-HEAD-INIT:CAPS"></a><h3>LIST_HEAD_INIT()</h3>
-<pre class="programlisting">#define LIST_HEAD_INIT(name) { { &name.n, &name.n } }
+<a name="list-check-node"></a><h3>list_check_node ()</h3>
+<pre class="programlisting">struct <a class="link" href="hkl-list.html#list-node" title="struct list_node"><span class="returnvalue">list_node</span></a> *
+list_check_node (<em class="parameter"><code>const <span class="type">struct list_node</span> *n</code></em>,
+                 <em class="parameter"><code>const <span class="type">char</span> *abortstr</code></em>);</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="list-debug"></a><h3>list_debug()</h3>
+<pre class="programlisting">#define list_debug(h, loc) list_check((h), loc)
 </pre>
 </div>
 <hr>
 <div class="refsect2">
-<a name="LIST-LOC:CAPS"></a><h3>LIST_LOC</h3>
-<pre class="programlisting">#define LIST_LOC __FILE__  ":" stringify(__LINE__)
+<a name="list-debug-node"></a><h3>list_debug_node()</h3>
+<pre class="programlisting">#define list_debug_node(n, loc) list_check_node((n), loc)
 </pre>
 </div>
 <hr>
 <div class="refsect2">
-<a name="list-add"></a><h3>list_add()</h3>
-<pre class="programlisting">#define list_add(h, n) list_add_(h, n, LIST_LOC)
+<a name="LIST-HEAD-INIT:CAPS"></a><h3>LIST_HEAD_INIT()</h3>
+<pre class="programlisting">#define LIST_HEAD_INIT(name) { { &name.n, &name.n } }
 </pre>
 </div>
 <hr>
 <div class="refsect2">
-<a name="list-add-off"></a><h3>list_add_off()</h3>
-<pre class="programlisting">#define             list_add_off(h, n, off)</pre>
+<a name="LIST-HEAD:CAPS"></a><h3>LIST_HEAD()</h3>
+<pre class="programlisting">#define             LIST_HEAD(name)</pre>
 </div>
 <hr>
 <div class="refsect2">
-<a name="list-add-tail"></a><h3>list_add_tail()</h3>
-<pre class="programlisting">#define list_add_tail(h, n) list_add_tail_(h, n, LIST_LOC)
+<a name="list-add"></a><h3>list_add()</h3>
+<pre class="programlisting">#define list_add(h, n) list_add_(h, n, LIST_LOC)
 </pre>
 </div>
 <hr>
 <div class="refsect2">
-<a name="list-append-list"></a><h3>list_append_list()</h3>
-<pre class="programlisting">#define             list_append_list(t, f)</pre>
+<a name="list-add-tail"></a><h3>list_add_tail()</h3>
+<pre class="programlisting">#define list_add_tail(h, n) list_add_tail_(h, n, LIST_LOC)
+</pre>
 </div>
 <hr>
 <div class="refsect2">
-<a name="list-check"></a><h3>list_check ()</h3>
-<pre class="programlisting">struct <a href="/usr/share/gtk-doc/html/hkl/hkl-list.html#list-head"><span class="returnvalue">list_head</span></a> *  list_check                          (<em class="parameter"><code>const <span class="type">struct list_head</span> *h</code></em>,
-                                                         <em class="parameter"><code>const <span class="type">char</span> *abortstr</code></em>);</pre>
+<a name="list-empty"></a><h3>list_empty()</h3>
+<pre class="programlisting">#define list_empty(h) list_empty_(h, LIST_LOC)
+</pre>
 </div>
 <hr>
 <div class="refsect2">
-<a name="list-check-node"></a><h3>list_check_node ()</h3>
-<pre class="programlisting">struct <a href="/usr/share/gtk-doc/html/hkl/hkl-list.html#list-node"><span class="returnvalue">list_node</span></a> *  list_check_node                     (<em class="parameter"><code>const <span class="type">struct list_node</span> *n</code></em>,
-                                                         <em class="parameter"><code>const <span class="type">char</span> *abortstr</code></em>);</pre>
+<a name="list-empty-nodebug"></a><h3>list_empty_nodebug()</h3>
+<pre class="programlisting">#define list_empty_nodebug(h) list_empty(h)
+</pre>
 </div>
 <hr>
 <div class="refsect2">
-<a name="list-debug"></a><h3>list_debug()</h3>
-<pre class="programlisting">#define list_debug(h, loc) list_check((h), loc)
+<a name="list-del"></a><h3>list_del()</h3>
+<pre class="programlisting">#define list_del(n) list_del_(n, LIST_LOC)
 </pre>
 </div>
 <hr>
 <div class="refsect2">
-<a name="list-debug-node"></a><h3>list_debug_node()</h3>
-<pre class="programlisting">#define list_debug_node(n, loc) list_check_node((n), loc)
+<a name="list-entry"></a><h3>list_entry()</h3>
+<pre class="programlisting">#define list_entry(n, type, member) container_of(n, type, member)
 </pre>
 </div>
 <hr>
 <div class="refsect2">
-<a name="list-del"></a><h3>list_del()</h3>
-<pre class="programlisting">#define list_del(n) list_del_(n, LIST_LOC)
-</pre>
+<a name="list-top"></a><h3>list_top()</h3>
+<pre class="programlisting">#define             list_top(h, type, member)</pre>
 </div>
 <hr>
 <div class="refsect2">
-<a name="list-del-from-off"></a><h3>list_del_from_off()</h3>
-<pre class="programlisting">#define             list_del_from_off(h, n, off)</pre>
+<a name="list-pop"></a><h3>list_pop()</h3>
+<pre class="programlisting">#define             list_pop(h, type, member)</pre>
 </div>
 <hr>
 <div class="refsect2">
-<a name="list-del-off"></a><h3>list_del_off()</h3>
-<pre class="programlisting">#define             list_del_off(n, off)</pre>
+<a name="list-tail"></a><h3>list_tail()</h3>
+<pre class="programlisting">#define             list_tail(h, type, member)</pre>
 </div>
 <hr>
 <div class="refsect2">
-<a name="list-empty"></a><h3>list_empty()</h3>
-<pre class="programlisting">#define list_empty(h) list_empty_(h, LIST_LOC)
-</pre>
+<a name="list-for-each"></a><h3>list_for_each()</h3>
+<pre class="programlisting">#define             list_for_each(h, i, member)</pre>
 </div>
 <hr>
 <div class="refsect2">
-<a name="list-empty-nodebug"></a><h3>list_empty_nodebug()</h3>
-<pre class="programlisting">#define list_empty_nodebug(h) list_empty(h)
-</pre>
+<a name="list-for-each-rev"></a><h3>list_for_each_rev()</h3>
+<pre class="programlisting">#define             list_for_each_rev(h, i, member)</pre>
 </div>
 <hr>
 <div class="refsect2">
-<a name="list-entry"></a><h3>list_entry()</h3>
-<pre class="programlisting">#define list_entry(n, type, member) container_of(n, type, member)
-</pre>
+<a name="list-for-each-safe"></a><h3>list_for_each_safe()</h3>
+<pre class="programlisting">#define             list_for_each_safe(h, i, nxt, member)</pre>
 </div>
 <hr>
 <div class="refsect2">
-<a name="list-entry-off"></a><h3>list_entry_off()</h3>
-<pre class="programlisting">#define             list_entry_off(n, type, off)</pre>
+<a name="list-next"></a><h3>list_next()</h3>
+<pre class="programlisting">#define             list_next(h, i, member)</pre>
 </div>
 <hr>
 <div class="refsect2">
-<a name="list-for-each"></a><h3>list_for_each()</h3>
-<pre class="programlisting">#define             list_for_each(h, i, member)</pre>
+<a name="list-prev"></a><h3>list_prev()</h3>
+<pre class="programlisting">#define             list_prev(h, i, member)</pre>
 </div>
 <hr>
 <div class="refsect2">
-<a name="list-for-each-off"></a><h3>list_for_each_off()</h3>
-<pre class="programlisting">#define             list_for_each_off(h, i, off)</pre>
+<a name="list-append-list"></a><h3>list_append_list()</h3>
+<pre class="programlisting">#define             list_append_list(t, f)</pre>
 </div>
 <hr>
 <div class="refsect2">
-<a name="list-for-each-rev"></a><h3>list_for_each_rev()</h3>
-<pre class="programlisting">#define             list_for_each_rev(h, i, member)</pre>
+<a name="list-prepend-list"></a><h3>list_prepend_list()</h3>
+<pre class="programlisting">#define list_prepend_list(t, f) list_prepend_list_(t, f, LIST_LOC)
+</pre>
 </div>
 <hr>
 <div class="refsect2">
-<a name="list-for-each-safe"></a><h3>list_for_each_safe()</h3>
-<pre class="programlisting">#define             list_for_each_safe(h, i, nxt, member)</pre>
+<a name="list-for-each-off"></a><h3>list_for_each_off()</h3>
+<pre class="programlisting">#define             list_for_each_off(h, i, off)</pre>
 </div>
 <hr>
 <div class="refsect2">
@@ -251,65 +405,78 @@ struct <a href="/usr/share/gtk-doc/html/hkl/hkl-list.html#list-node"><span class
 </div>
 <hr>
 <div class="refsect2">
+<a name="list-entry-off"></a><h3>list_entry_off()</h3>
+<pre class="programlisting">#define             list_entry_off(n, type, off)</pre>
+</div>
+<hr>
+<div class="refsect2">
 <a name="list-head-off"></a><h3>list_head_off()</h3>
 <pre class="programlisting">#define             list_head_off(h, type, off)</pre>
 </div>
 <hr>
 <div class="refsect2">
-<a name="list-next"></a><h3>list_next()</h3>
-<pre class="programlisting">#define             list_next(h, i, member)</pre>
+<a name="list-tail-off"></a><h3>list_tail_off()</h3>
+<pre class="programlisting">#define             list_tail_off(h, type, off)</pre>
 </div>
 <hr>
 <div class="refsect2">
-<a name="list-off-"></a><h3>list_off_()</h3>
-<pre class="programlisting">#define             list_off_(type, member)</pre>
+<a name="list-add-off"></a><h3>list_add_off()</h3>
+<pre class="programlisting">#define             list_add_off(h, n, off)</pre>
 </div>
 <hr>
 <div class="refsect2">
-<a name="list-off-var-"></a><h3>list_off_var_()</h3>
-<pre class="programlisting">#define             list_off_var_(var, member)</pre>
+<a name="list-del-off"></a><h3>list_del_off()</h3>
+<pre class="programlisting">#define             list_del_off(n, off)</pre>
 </div>
 <hr>
 <div class="refsect2">
-<a name="list-pop"></a><h3>list_pop()</h3>
-<pre class="programlisting">#define             list_pop(h, type, member)</pre>
+<a name="list-del-from-off"></a><h3>list_del_from_off()</h3>
+<pre class="programlisting">#define             list_del_from_off(h, n, off)</pre>
 </div>
 <hr>
 <div class="refsect2">
-<a name="list-prepend-list"></a><h3>list_prepend_list()</h3>
-<pre class="programlisting">#define list_prepend_list(t, f) list_prepend_list_(t, f, LIST_LOC)
-</pre>
+<a name="list-off-"></a><h3>list_off_()</h3>
+<pre class="programlisting">#define             list_off_(type, member)</pre>
 </div>
 <hr>
 <div class="refsect2">
-<a name="list-prev"></a><h3>list_prev()</h3>
-<pre class="programlisting">#define             list_prev(h, i, member)</pre>
+<a name="list-off-var-"></a><h3>list_off_var_()</h3>
+<pre class="programlisting">#define             list_off_var_(var, member)</pre>
 </div>
 <hr>
 <div class="refsect2">
-<a name="list-tail"></a><h3>list_tail()</h3>
-<pre class="programlisting">#define             list_tail(h, type, member)</pre>
+<a name="list-typeof"></a><h3>list_typeof()</h3>
+<pre class="programlisting">#define list_typeof(var) typeof(var)
+</pre>
 </div>
-<hr>
+</div>
+<div class="refsect1">
+<a name="hkl-list.other_details"></a><h2>Types and Values</h2>
 <div class="refsect2">
-<a name="list-tail-off"></a><h3>list_tail_off()</h3>
-<pre class="programlisting">#define             list_tail_off(h, type, off)</pre>
+<a name="list-node"></a><h3>struct list_node</h3>
+<pre class="programlisting">struct list_node {
+	struct list_node *next, *prev;
+};
+</pre>
 </div>
 <hr>
 <div class="refsect2">
-<a name="list-top"></a><h3>list_top()</h3>
-<pre class="programlisting">#define             list_top(h, type, member)</pre>
+<a name="list-head"></a><h3>struct list_head</h3>
+<pre class="programlisting">struct list_head {
+	struct list_node n;
+};
+</pre>
 </div>
 <hr>
 <div class="refsect2">
-<a name="list-typeof"></a><h3>list_typeof()</h3>
-<pre class="programlisting">#define list_typeof(var) typeof(var)
+<a name="LIST-LOC:CAPS"></a><h3>LIST_LOC</h3>
+<pre class="programlisting">#define LIST_LOC __FILE__  ":" stringify(__LINE__)
 </pre>
 </div>
 </div>
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/Documentation/api/html/hkl-noerr.html b/Documentation/api/html/hkl-noerr.html
index 3eac030..7be29af 100644
--- a/Documentation/api/html/hkl-noerr.html
+++ b/Documentation/api/html/hkl-noerr.html
@@ -2,30 +2,26 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>noerr</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<title>hkl Reference Manual: noerr</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="hkl Reference Manual">
 <link rel="up" href="ch01.html" title="[Insert title here]">
 <link rel="prev" href="hkl-list.html" title="list">
 <link rel="next" href="hkl-ptr-valid.html" title="ptr_valid">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
-<tr valign="middle">
-<td><a accesskey="p" href="hkl-list.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">hkl Reference Manual</th>
-<td><a accesskey="n" href="hkl-ptr-valid.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
-</tr>
-<tr><td colspan="5" class="shortcuts">
-<a href="#hkl-noerr.synopsis" class="shortcut">Top</a>
-                   | 
-                  <a href="#hkl-noerr.description" class="shortcut">Description</a>
-</td></tr>
-</table>
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts">
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+                  <a href="#hkl-noerr.description" class="shortcut">Description</a></span>
+</td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="p" href="hkl-list.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="hkl-ptr-valid.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
 <div class="refentry">
 <a name="hkl-noerr"></a><div class="titlepage"></div>
 <div class="refnamediv"><table width="100%"><tr>
@@ -33,38 +29,72 @@
 <h2><span class="refentrytitle"><a name="hkl-noerr.top_of_page"></a>noerr</span></h2>
 <p>noerr</p>
 </td>
-<td valign="top" align="right"></td>
+<td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
-<div class="refsynopsisdiv">
-<a name="hkl-noerr.synopsis"></a><h2>Synopsis</h2>
-<pre class="synopsis"><span class="returnvalue">int</span>                 <a class="link" href="hkl-noerr.html#close-noerr" title="close_noerr ()">close_noerr</a>                         (<em class="parameter"><code><span class="type">int</span> fd</code></em>);
-<span class="returnvalue">int</span>                 <a class="link" href="hkl-noerr.html#fclose-noerr" title="fclose_noerr ()">fclose_noerr</a>                        (<em class="parameter"><code><span class="type">FILE</span> *fp</code></em>);
-<span class="returnvalue">int</span>                 <a class="link" href="hkl-noerr.html#unlink-noerr" title="unlink_noerr ()">unlink_noerr</a>                        (<em class="parameter"><code>const <span class="type">char</span> *pathname</code></em>);
-</pre>
+<div class="refsect1">
+<a name="hkl-noerr.functions"></a><h2>Functions</h2>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="functions_return">
+<col class="functions_name">
+</colgroup>
+<tbody>
+<tr>
+<td class="function_type">
+<span class="returnvalue">int</span>
+</td>
+<td class="function_name">
+<a class="link" href="hkl-noerr.html#close-noerr" title="close_noerr ()">close_noerr</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">int</span>
+</td>
+<td class="function_name">
+<a class="link" href="hkl-noerr.html#fclose-noerr" title="fclose_noerr ()">fclose_noerr</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">int</span>
+</td>
+<td class="function_name">
+<a class="link" href="hkl-noerr.html#unlink-noerr" title="unlink_noerr ()">unlink_noerr</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+</tbody>
+</table></div>
 </div>
 <div class="refsect1">
 <a name="hkl-noerr.description"></a><h2>Description</h2>
 </div>
 <div class="refsect1">
-<a name="hkl-noerr.details"></a><h2>Details</h2>
+<a name="hkl-noerr.functions_details"></a><h2>Functions</h2>
 <div class="refsect2">
-<a name="close-noerr"></a><h3>close_noerr ()</h3>
-<pre class="programlisting"><span class="returnvalue">int</span>                 close_noerr                         (<em class="parameter"><code><span class="type">int</span> fd</code></em>);</pre>
+<a name="close-noerr"></a><h3>close_noerr ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+close_noerr (<em class="parameter"><code><span class="type">int</span> fd</code></em>);</pre>
 </div>
 <hr>
 <div class="refsect2">
-<a name="fclose-noerr"></a><h3>fclose_noerr ()</h3>
-<pre class="programlisting"><span class="returnvalue">int</span>                 fclose_noerr                        (<em class="parameter"><code><span class="type">FILE</span> *fp</code></em>);</pre>
+<a name="fclose-noerr"></a><h3>fclose_noerr ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+fclose_noerr (<em class="parameter"><code><span class="type">FILE</span> *fp</code></em>);</pre>
 </div>
 <hr>
 <div class="refsect2">
-<a name="unlink-noerr"></a><h3>unlink_noerr ()</h3>
-<pre class="programlisting"><span class="returnvalue">int</span>                 unlink_noerr                        (<em class="parameter"><code>const <span class="type">char</span> *pathname</code></em>);</pre>
+<a name="unlink-noerr"></a><h3>unlink_noerr ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+unlink_noerr (<em class="parameter"><code>const <span class="type">char</span> *pathname</code></em>);</pre>
+</div>
 </div>
+<div class="refsect1">
+<a name="hkl-noerr.other_details"></a><h2>Types and Values</h2>
 </div>
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/Documentation/api/html/hkl-ptr-valid.html b/Documentation/api/html/hkl-ptr-valid.html
index 88c0c1f..cc53bde 100644
--- a/Documentation/api/html/hkl-ptr-valid.html
+++ b/Documentation/api/html/hkl-ptr-valid.html
@@ -2,30 +2,26 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>ptr_valid</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<title>hkl Reference Manual: ptr_valid</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="hkl Reference Manual">
 <link rel="up" href="ch01.html" title="[Insert title here]">
 <link rel="prev" href="hkl-noerr.html" title="noerr">
 <link rel="next" href="hkl-str.html" title="str">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
-<tr valign="middle">
-<td><a accesskey="p" href="hkl-noerr.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">hkl Reference Manual</th>
-<td><a accesskey="n" href="hkl-str.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
-</tr>
-<tr><td colspan="5" class="shortcuts">
-<a href="#hkl-ptr-valid.synopsis" class="shortcut">Top</a>
-                   | 
-                  <a href="#hkl-ptr-valid.description" class="shortcut">Description</a>
-</td></tr>
-</table>
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts">
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+                  <a href="#hkl-ptr-valid.description" class="shortcut">Description</a></span>
+</td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="p" href="hkl-noerr.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="hkl-str.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
 <div class="refentry">
 <a name="hkl-ptr-valid"></a><div class="titlepage"></div>
 <div class="refnamediv"><table width="100%"><tr>
@@ -33,64 +29,142 @@
 <h2><span class="refentrytitle"><a name="hkl-ptr-valid.top_of_page"></a>ptr_valid</span></h2>
 <p>ptr_valid</p>
 </td>
-<td valign="top" align="right"></td>
+<td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
-<div class="refsynopsisdiv">
-<a name="hkl-ptr-valid.synopsis"></a><h2>Synopsis</h2>
-<pre class="synopsis">#define             <a class="link" href="hkl-ptr-valid.html#PTR-VALID-ALIGNOF:CAPS" title="PTR_VALID_ALIGNOF()">PTR_VALID_ALIGNOF</a>                   (var)
-<span class="returnvalue">bool</span>                <a class="link" href="hkl-ptr-valid.html#ptr-valid" title="ptr_valid ()">ptr_valid</a>                           (<em class="parameter"><code>const <span class="type">void</span> *p</code></em>,
-                                                         <em class="parameter"><code><span class="type">size_t</span> align</code></em>,
-                                                         <em class="parameter"><code><span class="type">size_t</span> size</code></em>,
-                                                         <em class="parameter"><code><span class="type">bool</span> write</code></em>);
-<span class="returnvalue">bool</span>                <a class="link" href="hkl-ptr-valid.html#ptr-valid-batch" title="ptr_valid_batch ()">ptr_valid_batch</a>                     (<em class="parameter"><code><span class="type">struct ptr_valid_batch</span> *batch</code></em>,
-                                                         <em class="parameter"><code>const <span class="type">void</span> *p</code></em>,
-                                                         <em class="parameter"><code><span class="type">size_t</span> alignment</code></em>,
-                                                         <em class="parameter"><code><span class="type">size_t</span> size</code></em>,
-                                                         <em class="parameter"><code><span class="type">bool</span> write</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="hkl-ptr-valid.html#ptr-valid-batch-end" title="ptr_valid_batch_end ()">ptr_valid_batch_end</a>                 (<em class="parameter"><code><span class="type">struct ptr_valid_batch</span> *batch</code></em>);
-#define             <a class="link" href="hkl-ptr-valid.html#ptr-valid-batch-read" title="ptr_valid_batch_read()">ptr_valid_batch_read</a>                (batch,
-                                                         p)
-<span class="returnvalue">bool</span>                <a class="link" href="hkl-ptr-valid.html#ptr-valid-batch-start" title="ptr_valid_batch_start ()">ptr_valid_batch_start</a>               (<em class="parameter"><code><span class="type">struct ptr_valid_batch</span> *batch</code></em>);
-<span class="returnvalue">bool</span>                <a class="link" href="hkl-ptr-valid.html#ptr-valid-batch-string" title="ptr_valid_batch_string ()">ptr_valid_batch_string</a>              (<em class="parameter"><code><span class="type">struct ptr_valid_batch</span> *batch</code></em>,
-                                                         <em class="parameter"><code>const <span class="type">char</span> *p</code></em>);
-#define             <a class="link" href="hkl-ptr-valid.html#ptr-valid-batch-write" title="ptr_valid_batch_write()">ptr_valid_batch_write</a>               (batch,
-                                                         p)
-#define             <a class="link" href="hkl-ptr-valid.html#ptr-valid-read" title="ptr_valid_read()">ptr_valid_read</a>                      (p)
-<span class="returnvalue">bool</span>                <a class="link" href="hkl-ptr-valid.html#ptr-valid-string" title="ptr_valid_string ()">ptr_valid_string</a>                    (<em class="parameter"><code>const <span class="type">char</span> *p</code></em>);
-#define             <a class="link" href="hkl-ptr-valid.html#ptr-valid-write" title="ptr_valid_write()">ptr_valid_write</a>                     (p)
-</pre>
+<div class="refsect1">
+<a name="hkl-ptr-valid.functions"></a><h2>Functions</h2>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="functions_return">
+<col class="functions_name">
+</colgroup>
+<tbody>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name">
+<a class="link" href="hkl-ptr-valid.html#ptr-valid-read" title="ptr_valid_read()">ptr_valid_read</a><span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name">
+<a class="link" href="hkl-ptr-valid.html#ptr-valid-write" title="ptr_valid_write()">ptr_valid_write</a><span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">bool</span>
+</td>
+<td class="function_name">
+<a class="link" href="hkl-ptr-valid.html#ptr-valid-string" title="ptr_valid_string ()">ptr_valid_string</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">bool</span>
+</td>
+<td class="function_name">
+<a class="link" href="hkl-ptr-valid.html#ptr-valid" title="ptr_valid ()">ptr_valid</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">bool</span>
+</td>
+<td class="function_name">
+<a class="link" href="hkl-ptr-valid.html#ptr-valid-batch-start" title="ptr_valid_batch_start ()">ptr_valid_batch_start</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name">
+<a class="link" href="hkl-ptr-valid.html#ptr-valid-batch-read" title="ptr_valid_batch_read()">ptr_valid_batch_read</a><span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name">
+<a class="link" href="hkl-ptr-valid.html#ptr-valid-batch-write" title="ptr_valid_batch_write()">ptr_valid_batch_write</a><span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">bool</span>
+</td>
+<td class="function_name">
+<a class="link" href="hkl-ptr-valid.html#ptr-valid-batch-string" title="ptr_valid_batch_string ()">ptr_valid_batch_string</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="hkl-ptr-valid.html#ptr-valid-batch-end" title="ptr_valid_batch_end ()">ptr_valid_batch_end</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name">
+<a class="link" href="hkl-ptr-valid.html#PTR-VALID-ALIGNOF:CAPS" title="PTR_VALID_ALIGNOF()">PTR_VALID_ALIGNOF</a><span class="c_punctuation">()</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="hkl-ptr-valid.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="name">
+<col class="description">
+</colgroup>
+<tbody>
+<tr>
+<td class="datatype_keyword">struct</td>
+<td class="function_name"><a class="link" href="hkl-ptr-valid.html#ptr-valid-batch" title="struct ptr_valid_batch">ptr_valid_batch</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword">struct</td>
+<td class="function_name"><a class="link" href="hkl-ptr-valid.html#ptr-valid-map" title="struct ptr_valid_map">ptr_valid_map</a></td>
+</tr>
+</tbody>
+</table></div>
 </div>
 <div class="refsect1">
 <a name="hkl-ptr-valid.description"></a><h2>Description</h2>
 </div>
 <div class="refsect1">
-<a name="hkl-ptr-valid.details"></a><h2>Details</h2>
+<a name="hkl-ptr-valid.functions_details"></a><h2>Functions</h2>
 <div class="refsect2">
-<a name="PTR-VALID-ALIGNOF:CAPS"></a><h3>PTR_VALID_ALIGNOF()</h3>
-<pre class="programlisting">#define PTR_VALID_ALIGNOF(var) __alignof__(var)
-</pre>
+<a name="ptr-valid-read"></a><h3>ptr_valid_read()</h3>
+<pre class="programlisting">#define             ptr_valid_read(p)</pre>
 </div>
 <hr>
 <div class="refsect2">
-<a name="ptr-valid"></a><h3>ptr_valid ()</h3>
-<pre class="programlisting"><span class="returnvalue">bool</span>                ptr_valid                           (<em class="parameter"><code>const <span class="type">void</span> *p</code></em>,
-                                                         <em class="parameter"><code><span class="type">size_t</span> align</code></em>,
-                                                         <em class="parameter"><code><span class="type">size_t</span> size</code></em>,
-                                                         <em class="parameter"><code><span class="type">bool</span> write</code></em>);</pre>
+<a name="ptr-valid-write"></a><h3>ptr_valid_write()</h3>
+<pre class="programlisting">#define             ptr_valid_write(p)</pre>
 </div>
 <hr>
 <div class="refsect2">
-<a name="ptr-valid-batch"></a><h3>ptr_valid_batch ()</h3>
-<pre class="programlisting"><span class="returnvalue">bool</span>                ptr_valid_batch                     (<em class="parameter"><code><span class="type">struct ptr_valid_batch</span> *batch</code></em>,
-                                                         <em class="parameter"><code>const <span class="type">void</span> *p</code></em>,
-                                                         <em class="parameter"><code><span class="type">size_t</span> alignment</code></em>,
-                                                         <em class="parameter"><code><span class="type">size_t</span> size</code></em>,
-                                                         <em class="parameter"><code><span class="type">bool</span> write</code></em>);</pre>
+<a name="ptr-valid-string"></a><h3>ptr_valid_string ()</h3>
+<pre class="programlisting"><span class="returnvalue">bool</span>
+ptr_valid_string (<em class="parameter"><code>const <span class="type">char</span> *p</code></em>);</pre>
 </div>
 <hr>
 <div class="refsect2">
-<a name="ptr-valid-batch-end"></a><h3>ptr_valid_batch_end ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                ptr_valid_batch_end                 (<em class="parameter"><code><span class="type">struct ptr_valid_batch</span> *batch</code></em>);</pre>
+<a name="ptr-valid"></a><h3>ptr_valid ()</h3>
+<pre class="programlisting"><span class="returnvalue">bool</span>
+ptr_valid (<em class="parameter"><code>const <span class="type">void</span> *p</code></em>,
+           <em class="parameter"><code><span class="type">size_t</span> align</code></em>,
+           <em class="parameter"><code><span class="type">size_t</span> size</code></em>,
+           <em class="parameter"><code><span class="type">bool</span> write</code></em>);</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ptr-valid-batch-start"></a><h3>ptr_valid_batch_start ()</h3>
+<pre class="programlisting"><span class="returnvalue">bool</span>
+ptr_valid_batch_start (<em class="parameter"><code><span class="type">struct ptr_valid_batch</span> *batch</code></em>);</pre>
 </div>
 <hr>
 <div class="refsect2">
@@ -99,39 +173,56 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="ptr-valid-batch-start"></a><h3>ptr_valid_batch_start ()</h3>
-<pre class="programlisting"><span class="returnvalue">bool</span>                ptr_valid_batch_start               (<em class="parameter"><code><span class="type">struct ptr_valid_batch</span> *batch</code></em>);</pre>
+<a name="ptr-valid-batch-write"></a><h3>ptr_valid_batch_write()</h3>
+<pre class="programlisting">#define             ptr_valid_batch_write(batch, p)</pre>
 </div>
 <hr>
 <div class="refsect2">
-<a name="ptr-valid-batch-string"></a><h3>ptr_valid_batch_string ()</h3>
-<pre class="programlisting"><span class="returnvalue">bool</span>                ptr_valid_batch_string              (<em class="parameter"><code><span class="type">struct ptr_valid_batch</span> *batch</code></em>,
-                                                         <em class="parameter"><code>const <span class="type">char</span> *p</code></em>);</pre>
+<a name="ptr-valid-batch-string"></a><h3>ptr_valid_batch_string ()</h3>
+<pre class="programlisting"><span class="returnvalue">bool</span>
+ptr_valid_batch_string (<em class="parameter"><code><span class="type">struct ptr_valid_batch</span> *batch</code></em>,
+                        <em class="parameter"><code>const <span class="type">char</span> *p</code></em>);</pre>
 </div>
 <hr>
 <div class="refsect2">
-<a name="ptr-valid-batch-write"></a><h3>ptr_valid_batch_write()</h3>
-<pre class="programlisting">#define             ptr_valid_batch_write(batch, p)</pre>
+<a name="ptr-valid-batch-end"></a><h3>ptr_valid_batch_end ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+ptr_valid_batch_end (<em class="parameter"><code><span class="type">struct ptr_valid_batch</span> *batch</code></em>);</pre>
 </div>
 <hr>
 <div class="refsect2">
-<a name="ptr-valid-read"></a><h3>ptr_valid_read()</h3>
-<pre class="programlisting">#define             ptr_valid_read(p)</pre>
+<a name="PTR-VALID-ALIGNOF:CAPS"></a><h3>PTR_VALID_ALIGNOF()</h3>
+<pre class="programlisting">#define PTR_VALID_ALIGNOF(var) __alignof__(var)
+</pre>
 </div>
-<hr>
+</div>
+<div class="refsect1">
+<a name="hkl-ptr-valid.other_details"></a><h2>Types and Values</h2>
 <div class="refsect2">
-<a name="ptr-valid-string"></a><h3>ptr_valid_string ()</h3>
-<pre class="programlisting"><span class="returnvalue">bool</span>                ptr_valid_string                    (<em class="parameter"><code>const <span class="type">char</span> *p</code></em>);</pre>
+<a name="ptr-valid-batch"></a><h3>struct ptr_valid_batch</h3>
+<pre class="programlisting">struct ptr_valid_batch {
+	unsigned int num_maps;
+	struct ptr_valid_map *maps;
+	int child_pid;
+	int to_child, from_child;
+	void *last;
+	bool last_ok;
+};
+</pre>
 </div>
 <hr>
 <div class="refsect2">
-<a name="ptr-valid-write"></a><h3>ptr_valid_write()</h3>
-<pre class="programlisting">#define             ptr_valid_write(p)</pre>
+<a name="ptr-valid-map"></a><h3>struct ptr_valid_map</h3>
+<pre class="programlisting">struct ptr_valid_map {
+	const char *start, *end;
+	bool is_write;
+};
+</pre>
 </div>
 </div>
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/Documentation/api/html/hkl-str-debug.html b/Documentation/api/html/hkl-str-debug.html
index 90d6a77..84170fb 100644
--- a/Documentation/api/html/hkl-str-debug.html
+++ b/Documentation/api/html/hkl-str-debug.html
@@ -2,30 +2,26 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>str_debug</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<title>hkl Reference Manual: str_debug</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="hkl Reference Manual">
 <link rel="up" href="ch01.html" title="[Insert title here]">
 <link rel="prev" href="hkl-str.html" title="str">
 <link rel="next" href="object-tree.html" title="Object Hierarchy">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
-<tr valign="middle">
-<td><a accesskey="p" href="hkl-str.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">hkl Reference Manual</th>
-<td><a accesskey="n" href="object-tree.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
-</tr>
-<tr><td colspan="5" class="shortcuts">
-<a href="#hkl-str-debug.synopsis" class="shortcut">Top</a>
-                   | 
-                  <a href="#hkl-str-debug.description" class="shortcut">Description</a>
-</td></tr>
-</table>
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts">
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+                  <a href="#hkl-str-debug.description" class="shortcut">Description</a></span>
+</td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="p" href="hkl-str.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="object-tree.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
 <div class="refentry">
 <a name="hkl-str-debug"></a><div class="titlepage"></div>
 <div class="refnamediv"><table width="100%"><tr>
@@ -33,122 +29,257 @@
 <h2><span class="refentrytitle"><a name="hkl-str-debug.top_of_page"></a>str_debug</span></h2>
 <p>str_debug</p>
 </td>
-<td valign="top" align="right"></td>
+<td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
-<div class="refsynopsisdiv">
-<a name="hkl-str-debug.synopsis"></a><h2>Synopsis</h2>
-<pre class="synopsis"><span class="returnvalue">int</span>                 <a class="link" href="hkl-str-debug.html#str-isalnum" title="str_isalnum ()">str_isalnum</a>                         (<em class="parameter"><code><span class="type">int</span> i</code></em>);
-<span class="returnvalue">int</span>                 <a class="link" href="hkl-str-debug.html#str-isalpha" title="str_isalpha ()">str_isalpha</a>                         (<em class="parameter"><code><span class="type">int</span> i</code></em>);
-<span class="returnvalue">int</span>                 <a class="link" href="hkl-str-debug.html#str-isascii" title="str_isascii ()">str_isascii</a>                         (<em class="parameter"><code><span class="type">int</span> i</code></em>);
-<span class="returnvalue">int</span>                 <a class="link" href="hkl-str-debug.html#str-isblank" title="str_isblank ()">str_isblank</a>                         (<em class="parameter"><code><span class="type">int</span> i</code></em>);
-<span class="returnvalue">int</span>                 <a class="link" href="hkl-str-debug.html#str-iscntrl" title="str_iscntrl ()">str_iscntrl</a>                         (<em class="parameter"><code><span class="type">int</span> i</code></em>);
-<span class="returnvalue">int</span>                 <a class="link" href="hkl-str-debug.html#str-isdigit" title="str_isdigit ()">str_isdigit</a>                         (<em class="parameter"><code><span class="type">int</span> i</code></em>);
-<span class="returnvalue">int</span>                 <a class="link" href="hkl-str-debug.html#str-isgraph" title="str_isgraph ()">str_isgraph</a>                         (<em class="parameter"><code><span class="type">int</span> i</code></em>);
-<span class="returnvalue">int</span>                 <a class="link" href="hkl-str-debug.html#str-islower" title="str_islower ()">str_islower</a>                         (<em class="parameter"><code><span class="type">int</span> i</code></em>);
-<span class="returnvalue">int</span>                 <a class="link" href="hkl-str-debug.html#str-isprint" title="str_isprint ()">str_isprint</a>                         (<em class="parameter"><code><span class="type">int</span> i</code></em>);
-<span class="returnvalue">int</span>                 <a class="link" href="hkl-str-debug.html#str-ispunct" title="str_ispunct ()">str_ispunct</a>                         (<em class="parameter"><code><span class="type">int</span> i</code></em>);
-<span class="returnvalue">int</span>                 <a class="link" href="hkl-str-debug.html#str-isspace" title="str_isspace ()">str_isspace</a>                         (<em class="parameter"><code><span class="type">int</span> i</code></em>);
-<span class="returnvalue">int</span>                 <a class="link" href="hkl-str-debug.html#str-isupper" title="str_isupper ()">str_isupper</a>                         (<em class="parameter"><code><span class="type">int</span> i</code></em>);
-<span class="returnvalue">int</span>                 <a class="link" href="hkl-str-debug.html#str-isxdigit" title="str_isxdigit ()">str_isxdigit</a>                        (<em class="parameter"><code><span class="type">int</span> i</code></em>);
-<span class="returnvalue">char</span> *              <a class="link" href="hkl-str-debug.html#str-strchr" title="str_strchr ()">str_strchr</a>                          (<em class="parameter"><code>const <span class="type">char</span> *s</code></em>,
-                                                         <em class="parameter"><code><span class="type">int</span> c</code></em>);
-<span class="returnvalue">char</span> *              <a class="link" href="hkl-str-debug.html#str-strrchr" title="str_strrchr ()">str_strrchr</a>                         (<em class="parameter"><code>const <span class="type">char</span> *s</code></em>,
-                                                         <em class="parameter"><code><span class="type">int</span> c</code></em>);
-<span class="returnvalue">char</span> *              <a class="link" href="hkl-str-debug.html#str-strstr" title="str_strstr ()">str_strstr</a>                          (<em class="parameter"><code>const <span class="type">char</span> *haystack</code></em>,
-                                                         <em class="parameter"><code>const <span class="type">char</span> *needle</code></em>);
-</pre>
+<div class="refsect1">
+<a name="hkl-str-debug.functions"></a><h2>Functions</h2>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="functions_return">
+<col class="functions_name">
+</colgroup>
+<tbody>
+<tr>
+<td class="function_type">
+<span class="returnvalue">int</span>
+</td>
+<td class="function_name">
+<a class="link" href="hkl-str-debug.html#str-isalnum" title="str_isalnum ()">str_isalnum</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">int</span>
+</td>
+<td class="function_name">
+<a class="link" href="hkl-str-debug.html#str-isalpha" title="str_isalpha ()">str_isalpha</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">int</span>
+</td>
+<td class="function_name">
+<a class="link" href="hkl-str-debug.html#str-isascii" title="str_isascii ()">str_isascii</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">int</span>
+</td>
+<td class="function_name">
+<a class="link" href="hkl-str-debug.html#str-isblank" title="str_isblank ()">str_isblank</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">int</span>
+</td>
+<td class="function_name">
+<a class="link" href="hkl-str-debug.html#str-iscntrl" title="str_iscntrl ()">str_iscntrl</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">int</span>
+</td>
+<td class="function_name">
+<a class="link" href="hkl-str-debug.html#str-isdigit" title="str_isdigit ()">str_isdigit</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">int</span>
+</td>
+<td class="function_name">
+<a class="link" href="hkl-str-debug.html#str-isgraph" title="str_isgraph ()">str_isgraph</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">int</span>
+</td>
+<td class="function_name">
+<a class="link" href="hkl-str-debug.html#str-islower" title="str_islower ()">str_islower</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">int</span>
+</td>
+<td class="function_name">
+<a class="link" href="hkl-str-debug.html#str-isprint" title="str_isprint ()">str_isprint</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">int</span>
+</td>
+<td class="function_name">
+<a class="link" href="hkl-str-debug.html#str-ispunct" title="str_ispunct ()">str_ispunct</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">int</span>
+</td>
+<td class="function_name">
+<a class="link" href="hkl-str-debug.html#str-isspace" title="str_isspace ()">str_isspace</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">int</span>
+</td>
+<td class="function_name">
+<a class="link" href="hkl-str-debug.html#str-isupper" title="str_isupper ()">str_isupper</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">int</span>
+</td>
+<td class="function_name">
+<a class="link" href="hkl-str-debug.html#str-isxdigit" title="str_isxdigit ()">str_isxdigit</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">char</span> *
+</td>
+<td class="function_name">
+<a class="link" href="hkl-str-debug.html#str-strstr" title="str_strstr ()">str_strstr</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">char</span> *
+</td>
+<td class="function_name">
+<a class="link" href="hkl-str-debug.html#str-strchr" title="str_strchr ()">str_strchr</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">char</span> *
+</td>
+<td class="function_name">
+<a class="link" href="hkl-str-debug.html#str-strrchr" title="str_strrchr ()">str_strrchr</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+</tbody>
+</table></div>
 </div>
 <div class="refsect1">
 <a name="hkl-str-debug.description"></a><h2>Description</h2>
 </div>
 <div class="refsect1">
-<a name="hkl-str-debug.details"></a><h2>Details</h2>
+<a name="hkl-str-debug.functions_details"></a><h2>Functions</h2>
 <div class="refsect2">
-<a name="str-isalnum"></a><h3>str_isalnum ()</h3>
-<pre class="programlisting"><span class="returnvalue">int</span>                 str_isalnum                         (<em class="parameter"><code><span class="type">int</span> i</code></em>);</pre>
+<a name="str-isalnum"></a><h3>str_isalnum ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+str_isalnum (<em class="parameter"><code><span class="type">int</span> i</code></em>);</pre>
 </div>
 <hr>
 <div class="refsect2">
-<a name="str-isalpha"></a><h3>str_isalpha ()</h3>
-<pre class="programlisting"><span class="returnvalue">int</span>                 str_isalpha                         (<em class="parameter"><code><span class="type">int</span> i</code></em>);</pre>
+<a name="str-isalpha"></a><h3>str_isalpha ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+str_isalpha (<em class="parameter"><code><span class="type">int</span> i</code></em>);</pre>
 </div>
 <hr>
 <div class="refsect2">
-<a name="str-isascii"></a><h3>str_isascii ()</h3>
-<pre class="programlisting"><span class="returnvalue">int</span>                 str_isascii                         (<em class="parameter"><code><span class="type">int</span> i</code></em>);</pre>
+<a name="str-isascii"></a><h3>str_isascii ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+str_isascii (<em class="parameter"><code><span class="type">int</span> i</code></em>);</pre>
 </div>
 <hr>
 <div class="refsect2">
-<a name="str-isblank"></a><h3>str_isblank ()</h3>
-<pre class="programlisting"><span class="returnvalue">int</span>                 str_isblank                         (<em class="parameter"><code><span class="type">int</span> i</code></em>);</pre>
+<a name="str-isblank"></a><h3>str_isblank ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+str_isblank (<em class="parameter"><code><span class="type">int</span> i</code></em>);</pre>
 </div>
 <hr>
 <div class="refsect2">
-<a name="str-iscntrl"></a><h3>str_iscntrl ()</h3>
-<pre class="programlisting"><span class="returnvalue">int</span>                 str_iscntrl                         (<em class="parameter"><code><span class="type">int</span> i</code></em>);</pre>
+<a name="str-iscntrl"></a><h3>str_iscntrl ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+str_iscntrl (<em class="parameter"><code><span class="type">int</span> i</code></em>);</pre>
 </div>
 <hr>
 <div class="refsect2">
-<a name="str-isdigit"></a><h3>str_isdigit ()</h3>
-<pre class="programlisting"><span class="returnvalue">int</span>                 str_isdigit                         (<em class="parameter"><code><span class="type">int</span> i</code></em>);</pre>
+<a name="str-isdigit"></a><h3>str_isdigit ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+str_isdigit (<em class="parameter"><code><span class="type">int</span> i</code></em>);</pre>
 </div>
 <hr>
 <div class="refsect2">
-<a name="str-isgraph"></a><h3>str_isgraph ()</h3>
-<pre class="programlisting"><span class="returnvalue">int</span>                 str_isgraph                         (<em class="parameter"><code><span class="type">int</span> i</code></em>);</pre>
+<a name="str-isgraph"></a><h3>str_isgraph ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+str_isgraph (<em class="parameter"><code><span class="type">int</span> i</code></em>);</pre>
 </div>
 <hr>
 <div class="refsect2">
-<a name="str-islower"></a><h3>str_islower ()</h3>
-<pre class="programlisting"><span class="returnvalue">int</span>                 str_islower                         (<em class="parameter"><code><span class="type">int</span> i</code></em>);</pre>
+<a name="str-islower"></a><h3>str_islower ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+str_islower (<em class="parameter"><code><span class="type">int</span> i</code></em>);</pre>
 </div>
 <hr>
 <div class="refsect2">
-<a name="str-isprint"></a><h3>str_isprint ()</h3>
-<pre class="programlisting"><span class="returnvalue">int</span>                 str_isprint                         (<em class="parameter"><code><span class="type">int</span> i</code></em>);</pre>
+<a name="str-isprint"></a><h3>str_isprint ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+str_isprint (<em class="parameter"><code><span class="type">int</span> i</code></em>);</pre>
 </div>
 <hr>
 <div class="refsect2">
-<a name="str-ispunct"></a><h3>str_ispunct ()</h3>
-<pre class="programlisting"><span class="returnvalue">int</span>                 str_ispunct                         (<em class="parameter"><code><span class="type">int</span> i</code></em>);</pre>
+<a name="str-ispunct"></a><h3>str_ispunct ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+str_ispunct (<em class="parameter"><code><span class="type">int</span> i</code></em>);</pre>
 </div>
 <hr>
 <div class="refsect2">
-<a name="str-isspace"></a><h3>str_isspace ()</h3>
-<pre class="programlisting"><span class="returnvalue">int</span>                 str_isspace                         (<em class="parameter"><code><span class="type">int</span> i</code></em>);</pre>
+<a name="str-isspace"></a><h3>str_isspace ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+str_isspace (<em class="parameter"><code><span class="type">int</span> i</code></em>);</pre>
 </div>
 <hr>
 <div class="refsect2">
-<a name="str-isupper"></a><h3>str_isupper ()</h3>
-<pre class="programlisting"><span class="returnvalue">int</span>                 str_isupper                         (<em class="parameter"><code><span class="type">int</span> i</code></em>);</pre>
+<a name="str-isupper"></a><h3>str_isupper ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+str_isupper (<em class="parameter"><code><span class="type">int</span> i</code></em>);</pre>
 </div>
 <hr>
 <div class="refsect2">
-<a name="str-isxdigit"></a><h3>str_isxdigit ()</h3>
-<pre class="programlisting"><span class="returnvalue">int</span>                 str_isxdigit                        (<em class="parameter"><code><span class="type">int</span> i</code></em>);</pre>
+<a name="str-isxdigit"></a><h3>str_isxdigit ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+str_isxdigit (<em class="parameter"><code><span class="type">int</span> i</code></em>);</pre>
 </div>
 <hr>
 <div class="refsect2">
-<a name="str-strchr"></a><h3>str_strchr ()</h3>
-<pre class="programlisting"><span class="returnvalue">char</span> *              str_strchr                          (<em class="parameter"><code>const <span class="type">char</span> *s</code></em>,
-                                                         <em class="parameter"><code><span class="type">int</span> c</code></em>);</pre>
+<a name="str-strstr"></a><h3>str_strstr ()</h3>
+<pre class="programlisting"><span class="returnvalue">char</span> *
+str_strstr (<em class="parameter"><code>const <span class="type">char</span> *haystack</code></em>,
+            <em class="parameter"><code>const <span class="type">char</span> *needle</code></em>);</pre>
 </div>
 <hr>
 <div class="refsect2">
-<a name="str-strrchr"></a><h3>str_strrchr ()</h3>
-<pre class="programlisting"><span class="returnvalue">char</span> *              str_strrchr                         (<em class="parameter"><code>const <span class="type">char</span> *s</code></em>,
-                                                         <em class="parameter"><code><span class="type">int</span> c</code></em>);</pre>
+<a name="str-strchr"></a><h3>str_strchr ()</h3>
+<pre class="programlisting"><span class="returnvalue">char</span> *
+str_strchr (<em class="parameter"><code>const <span class="type">char</span> *s</code></em>,
+            <em class="parameter"><code><span class="type">int</span> c</code></em>);</pre>
 </div>
 <hr>
 <div class="refsect2">
-<a name="str-strstr"></a><h3>str_strstr ()</h3>
-<pre class="programlisting"><span class="returnvalue">char</span> *              str_strstr                          (<em class="parameter"><code>const <span class="type">char</span> *haystack</code></em>,
-                                                         <em class="parameter"><code>const <span class="type">char</span> *needle</code></em>);</pre>
+<a name="str-strrchr"></a><h3>str_strrchr ()</h3>
+<pre class="programlisting"><span class="returnvalue">char</span> *
+str_strrchr (<em class="parameter"><code>const <span class="type">char</span> *s</code></em>,
+             <em class="parameter"><code><span class="type">int</span> c</code></em>);</pre>
+</div>
 </div>
+<div class="refsect1">
+<a name="hkl-str-debug.other_details"></a><h2>Types and Values</h2>
 </div>
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/Documentation/api/html/hkl-str.html b/Documentation/api/html/hkl-str.html
index b0e48c1..cd1cbc4 100644
--- a/Documentation/api/html/hkl-str.html
+++ b/Documentation/api/html/hkl-str.html
@@ -2,30 +2,26 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>str</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<title>hkl Reference Manual: str</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="hkl Reference Manual">
 <link rel="up" href="ch01.html" title="[Insert title here]">
 <link rel="prev" href="hkl-ptr-valid.html" title="ptr_valid">
 <link rel="next" href="hkl-str-debug.html" title="str_debug">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
-<tr valign="middle">
-<td><a accesskey="p" href="hkl-ptr-valid.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">hkl Reference Manual</th>
-<td><a accesskey="n" href="hkl-str-debug.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
-</tr>
-<tr><td colspan="5" class="shortcuts">
-<a href="#hkl-str.synopsis" class="shortcut">Top</a>
-                   | 
-                  <a href="#hkl-str.description" class="shortcut">Description</a>
-</td></tr>
-</table>
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts">
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+                  <a href="#hkl-str.description" class="shortcut">Description</a></span>
+</td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="p" href="hkl-ptr-valid.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="hkl-str-debug.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
 <div class="refentry">
 <a name="hkl-str"></a><div class="titlepage"></div>
 <div class="refnamediv"><table width="100%"><tr>
@@ -33,175 +29,341 @@
 <h2><span class="refentrytitle"><a name="hkl-str.top_of_page"></a>str</span></h2>
 <p>str</p>
 </td>
-<td valign="top" align="right"></td>
+<td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
-<div class="refsynopsisdiv">
-<a name="hkl-str.synopsis"></a><h2>Synopsis</h2>
-<pre class="synopsis">#define             <a class="link" href="hkl-str.html#STR-MAX-CHARS:CAPS" title="STR_MAX_CHARS()">STR_MAX_CHARS</a>                       (type_or_expr)
-#define             <a class="link" href="hkl-str.html#STR-MAX-CHARS-TCHECK-:CAPS" title="STR_MAX_CHARS_TCHECK_()">STR_MAX_CHARS_TCHECK_</a>               (type_or_expr)
-<span class="returnvalue">return</span>              <a class="link" href="hkl-str.html#isalnum" title="isalnum ()">isalnum</a>                             ();
-<span class="returnvalue">return</span>              <a class="link" href="hkl-str.html#isalpha" title="isalpha ()">isalpha</a>                             ();
-<span class="returnvalue">return</span>              <a class="link" href="hkl-str.html#isascii" title="isascii ()">isascii</a>                             ();
-<span class="returnvalue">return</span>              <a class="link" href="hkl-str.html#isblank" title="isblank ()">isblank</a>                             ();
-<span class="returnvalue">return</span>              <a class="link" href="hkl-str.html#iscntrl" title="iscntrl ()">iscntrl</a>                             ();
-<span class="returnvalue">return</span>              <a class="link" href="hkl-str.html#isdigit" title="isdigit ()">isdigit</a>                             ();
-<span class="returnvalue">return</span>              <a class="link" href="hkl-str.html#isgraph" title="isgraph ()">isgraph</a>                             ();
-<span class="returnvalue">return</span>              <a class="link" href="hkl-str.html#islower" title="islower ()">islower</a>                             ();
-<span class="returnvalue">return</span>              <a class="link" href="hkl-str.html#isprint" title="isprint ()">isprint</a>                             ();
-<span class="returnvalue">return</span>              <a class="link" href="hkl-str.html#ispunct" title="ispunct ()">ispunct</a>                             ();
-<span class="returnvalue">return</span>              <a class="link" href="hkl-str.html#isspace" title="isspace ()">isspace</a>                             ();
-<span class="returnvalue">return</span>              <a class="link" href="hkl-str.html#isupper" title="isupper ()">isupper</a>                             ();
-<span class="returnvalue">return</span>              <a class="link" href="hkl-str.html#isxdigit" title="isxdigit ()">isxdigit</a>                            ();
-#define             <a class="link" href="hkl-str.html#str-check-arg-" title="str_check_arg_()">str_check_arg_</a>                      (i)
-#define             <a class="link" href="hkl-str.html#strchr" title="strchr()">strchr</a>                              (haystack,
-                                                         c)
-<span class="returnvalue">size_t</span>              <a class="link" href="hkl-str.html#strcount" title="strcount ()">strcount</a>                            (<em class="parameter"><code>const <span class="type">char</span> *haystack</code></em>,
-                                                         <em class="parameter"><code>const <span class="type">char</span> *needle</code></em>);
-#define             <a class="link" href="hkl-str.html#streq" title="streq()">streq</a>                               (a,
-                                                         b)
-#define             <a class="link" href="hkl-str.html#stringify" title="stringify()">stringify</a>                           (expr)
-#define             <a class="link" href="hkl-str.html#stringify-1" title="stringify_1()">stringify_1</a>                         (expr)
-#define             <a class="link" href="hkl-str.html#strrchr" title="strrchr()">strrchr</a>                             (haystack,
-                                                         c)
-#define             <a class="link" href="hkl-str.html#strstarts" title="strstarts()">strstarts</a>                           (str,
-                                                         prefix)
-#define             <a class="link" href="hkl-str.html#strstr" title="strstr()">strstr</a>                              (haystack,
-                                                         needle)
-</pre>
+<div class="refsect1">
+<a name="hkl-str.functions"></a><h2>Functions</h2>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="functions_return">
+<col class="functions_name">
+</colgroup>
+<tbody>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name">
+<a class="link" href="hkl-str.html#streq" title="streq()">streq</a><span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name">
+<a class="link" href="hkl-str.html#strstarts" title="strstarts()">strstarts</a><span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name">
+<a class="link" href="hkl-str.html#stringify" title="stringify()">stringify</a><span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name">
+<a class="link" href="hkl-str.html#stringify-1" title="stringify_1()">stringify_1</a><span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">size_t</span>
+</td>
+<td class="function_name">
+<a class="link" href="hkl-str.html#strcount" title="strcount ()">strcount</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name">
+<a class="link" href="hkl-str.html#STR-MAX-CHARS:CAPS" title="STR_MAX_CHARS()">STR_MAX_CHARS</a><span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name">
+<a class="link" href="hkl-str.html#STR-MAX-CHARS-TCHECK-:CAPS" title="STR_MAX_CHARS_TCHECK_()">STR_MAX_CHARS_TCHECK_</a><span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">return</span>
+</td>
+<td class="function_name">
+<a class="link" href="hkl-str.html#isalnum" title="isalnum ()">isalnum</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">return</span>
+</td>
+<td class="function_name">
+<a class="link" href="hkl-str.html#isalpha" title="isalpha ()">isalpha</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">return</span>
+</td>
+<td class="function_name">
+<a class="link" href="hkl-str.html#isascii" title="isascii ()">isascii</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">return</span>
+</td>
+<td class="function_name">
+<a class="link" href="hkl-str.html#isblank" title="isblank ()">isblank</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">return</span>
+</td>
+<td class="function_name">
+<a class="link" href="hkl-str.html#iscntrl" title="iscntrl ()">iscntrl</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">return</span>
+</td>
+<td class="function_name">
+<a class="link" href="hkl-str.html#isdigit" title="isdigit ()">isdigit</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">return</span>
+</td>
+<td class="function_name">
+<a class="link" href="hkl-str.html#isgraph" title="isgraph ()">isgraph</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">return</span>
+</td>
+<td class="function_name">
+<a class="link" href="hkl-str.html#islower" title="islower ()">islower</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">return</span>
+</td>
+<td class="function_name">
+<a class="link" href="hkl-str.html#isprint" title="isprint ()">isprint</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">return</span>
+</td>
+<td class="function_name">
+<a class="link" href="hkl-str.html#ispunct" title="ispunct ()">ispunct</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">return</span>
+</td>
+<td class="function_name">
+<a class="link" href="hkl-str.html#isspace" title="isspace ()">isspace</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">return</span>
+</td>
+<td class="function_name">
+<a class="link" href="hkl-str.html#isupper" title="isupper ()">isupper</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">return</span>
+</td>
+<td class="function_name">
+<a class="link" href="hkl-str.html#isxdigit" title="isxdigit ()">isxdigit</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name">
+<a class="link" href="hkl-str.html#str-check-arg-" title="str_check_arg_()">str_check_arg_</a><span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name">
+<a class="link" href="hkl-str.html#strstr" title="strstr()">strstr</a><span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name">
+<a class="link" href="hkl-str.html#strchr" title="strchr()">strchr</a><span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name">
+<a class="link" href="hkl-str.html#strrchr" title="strrchr()">strrchr</a><span class="c_punctuation">()</span>
+</td>
+</tr>
+</tbody>
+</table></div>
 </div>
 <div class="refsect1">
 <a name="hkl-str.description"></a><h2>Description</h2>
 </div>
 <div class="refsect1">
-<a name="hkl-str.details"></a><h2>Details</h2>
+<a name="hkl-str.functions_details"></a><h2>Functions</h2>
 <div class="refsect2">
-<a name="STR-MAX-CHARS:CAPS"></a><h3>STR_MAX_CHARS()</h3>
-<pre class="programlisting">#define             STR_MAX_CHARS(type_or_expr)</pre>
+<a name="streq"></a><h3>streq()</h3>
+<pre class="programlisting">#define streq(a,b) (strcmp((a),(b)) == 0)
+</pre>
 </div>
 <hr>
 <div class="refsect2">
-<a name="STR-MAX-CHARS-TCHECK-:CAPS"></a><h3>STR_MAX_CHARS_TCHECK_()</h3>
-<pre class="programlisting">#define             STR_MAX_CHARS_TCHECK_(type_or_expr)</pre>
+<a name="strstarts"></a><h3>strstarts()</h3>
+<pre class="programlisting">#define strstarts(str,prefix) (strncmp((str),(prefix),strlen(prefix)) == 0)
+</pre>
 </div>
 <hr>
 <div class="refsect2">
-<a name="isalnum"></a><h3>isalnum ()</h3>
-<pre class="programlisting"><span class="returnvalue">return</span>              isalnum                             ();</pre>
+<a name="stringify"></a><h3>stringify()</h3>
+<pre class="programlisting">#define stringify(expr)		stringify_1(expr)
+</pre>
 </div>
 <hr>
 <div class="refsect2">
-<a name="isalpha"></a><h3>isalpha ()</h3>
-<pre class="programlisting"><span class="returnvalue">return</span>              isalpha                             ();</pre>
+<a name="stringify-1"></a><h3>stringify_1()</h3>
+<pre class="programlisting">#define stringify_1(expr) #expr
+</pre>
 </div>
 <hr>
 <div class="refsect2">
-<a name="isascii"></a><h3>isascii ()</h3>
-<pre class="programlisting"><span class="returnvalue">return</span>              isascii                             ();</pre>
+<a name="strcount"></a><h3>strcount ()</h3>
+<pre class="programlisting"><span class="returnvalue">size_t</span>
+strcount (<em class="parameter"><code>const <span class="type">char</span> *haystack</code></em>,
+          <em class="parameter"><code>const <span class="type">char</span> *needle</code></em>);</pre>
 </div>
 <hr>
 <div class="refsect2">
-<a name="isblank"></a><h3>isblank ()</h3>
-<pre class="programlisting"><span class="returnvalue">return</span>              isblank                             ();</pre>
+<a name="STR-MAX-CHARS:CAPS"></a><h3>STR_MAX_CHARS()</h3>
+<pre class="programlisting">#define             STR_MAX_CHARS(type_or_expr)</pre>
 </div>
 <hr>
 <div class="refsect2">
-<a name="iscntrl"></a><h3>iscntrl ()</h3>
-<pre class="programlisting"><span class="returnvalue">return</span>              iscntrl                             ();</pre>
+<a name="STR-MAX-CHARS-TCHECK-:CAPS"></a><h3>STR_MAX_CHARS_TCHECK_()</h3>
+<pre class="programlisting">#define             STR_MAX_CHARS_TCHECK_(type_or_expr)</pre>
 </div>
 <hr>
 <div class="refsect2">
-<a name="isdigit"></a><h3>isdigit ()</h3>
-<pre class="programlisting"><span class="returnvalue">return</span>              isdigit                             ();</pre>
+<a name="isalnum"></a><h3>isalnum ()</h3>
+<pre class="programlisting"><span class="returnvalue">return</span>
+isalnum ();</pre>
 </div>
 <hr>
 <div class="refsect2">
-<a name="isgraph"></a><h3>isgraph ()</h3>
-<pre class="programlisting"><span class="returnvalue">return</span>              isgraph                             ();</pre>
+<a name="isalpha"></a><h3>isalpha ()</h3>
+<pre class="programlisting"><span class="returnvalue">return</span>
+isalpha ();</pre>
 </div>
 <hr>
 <div class="refsect2">
-<a name="islower"></a><h3>islower ()</h3>
-<pre class="programlisting"><span class="returnvalue">return</span>              islower                             ();</pre>
+<a name="isascii"></a><h3>isascii ()</h3>
+<pre class="programlisting"><span class="returnvalue">return</span>
+isascii ();</pre>
 </div>
 <hr>
 <div class="refsect2">
-<a name="isprint"></a><h3>isprint ()</h3>
-<pre class="programlisting"><span class="returnvalue">return</span>              isprint                             ();</pre>
+<a name="isblank"></a><h3>isblank ()</h3>
+<pre class="programlisting"><span class="returnvalue">return</span>
+isblank ();</pre>
 </div>
 <hr>
 <div class="refsect2">
-<a name="ispunct"></a><h3>ispunct ()</h3>
-<pre class="programlisting"><span class="returnvalue">return</span>              ispunct                             ();</pre>
+<a name="iscntrl"></a><h3>iscntrl ()</h3>
+<pre class="programlisting"><span class="returnvalue">return</span>
+iscntrl ();</pre>
 </div>
 <hr>
 <div class="refsect2">
-<a name="isspace"></a><h3>isspace ()</h3>
-<pre class="programlisting"><span class="returnvalue">return</span>              isspace                             ();</pre>
+<a name="isdigit"></a><h3>isdigit ()</h3>
+<pre class="programlisting"><span class="returnvalue">return</span>
+isdigit ();</pre>
 </div>
 <hr>
 <div class="refsect2">
-<a name="isupper"></a><h3>isupper ()</h3>
-<pre class="programlisting"><span class="returnvalue">return</span>              isupper                             ();</pre>
+<a name="isgraph"></a><h3>isgraph ()</h3>
+<pre class="programlisting"><span class="returnvalue">return</span>
+isgraph ();</pre>
 </div>
 <hr>
 <div class="refsect2">
-<a name="isxdigit"></a><h3>isxdigit ()</h3>
-<pre class="programlisting"><span class="returnvalue">return</span>              isxdigit                            ();</pre>
+<a name="islower"></a><h3>islower ()</h3>
+<pre class="programlisting"><span class="returnvalue">return</span>
+islower ();</pre>
 </div>
 <hr>
 <div class="refsect2">
-<a name="str-check-arg-"></a><h3>str_check_arg_()</h3>
-<pre class="programlisting">#define             str_check_arg_(i)</pre>
+<a name="isprint"></a><h3>isprint ()</h3>
+<pre class="programlisting"><span class="returnvalue">return</span>
+isprint ();</pre>
 </div>
 <hr>
 <div class="refsect2">
-<a name="strchr"></a><h3>strchr()</h3>
-<pre class="programlisting">#define             strchr(haystack, c)</pre>
+<a name="ispunct"></a><h3>ispunct ()</h3>
+<pre class="programlisting"><span class="returnvalue">return</span>
+ispunct ();</pre>
 </div>
 <hr>
 <div class="refsect2">
-<a name="strcount"></a><h3>strcount ()</h3>
-<pre class="programlisting"><span class="returnvalue">size_t</span>              strcount                            (<em class="parameter"><code>const <span class="type">char</span> *haystack</code></em>,
-                                                         <em class="parameter"><code>const <span class="type">char</span> *needle</code></em>);</pre>
+<a name="isspace"></a><h3>isspace ()</h3>
+<pre class="programlisting"><span class="returnvalue">return</span>
+isspace ();</pre>
 </div>
 <hr>
 <div class="refsect2">
-<a name="streq"></a><h3>streq()</h3>
-<pre class="programlisting">#define streq(a,b) (strcmp((a),(b)) == 0)
-</pre>
+<a name="isupper"></a><h3>isupper ()</h3>
+<pre class="programlisting"><span class="returnvalue">return</span>
+isupper ();</pre>
 </div>
 <hr>
 <div class="refsect2">
-<a name="stringify"></a><h3>stringify()</h3>
-<pre class="programlisting">#define stringify(expr)		stringify_1(expr)
-</pre>
+<a name="isxdigit"></a><h3>isxdigit ()</h3>
+<pre class="programlisting"><span class="returnvalue">return</span>
+isxdigit ();</pre>
 </div>
 <hr>
 <div class="refsect2">
-<a name="stringify-1"></a><h3>stringify_1()</h3>
-<pre class="programlisting">#define stringify_1(expr) #expr
-</pre>
+<a name="str-check-arg-"></a><h3>str_check_arg_()</h3>
+<pre class="programlisting">#define             str_check_arg_(i)</pre>
 </div>
 <hr>
 <div class="refsect2">
-<a name="strrchr"></a><h3>strrchr()</h3>
-<pre class="programlisting">#define             strrchr(haystack, c)</pre>
+<a name="strstr"></a><h3>strstr()</h3>
+<pre class="programlisting">#define             strstr(haystack, needle)</pre>
 </div>
 <hr>
 <div class="refsect2">
-<a name="strstarts"></a><h3>strstarts()</h3>
-<pre class="programlisting">#define strstarts(str,prefix) (strncmp((str),(prefix),strlen(prefix)) == 0)
-</pre>
+<a name="strchr"></a><h3>strchr()</h3>
+<pre class="programlisting">#define             strchr(haystack, c)</pre>
 </div>
 <hr>
 <div class="refsect2">
-<a name="strstr"></a><h3>strstr()</h3>
-<pre class="programlisting">#define             strstr(haystack, needle)</pre>
+<a name="strrchr"></a><h3>strrchr()</h3>
+<pre class="programlisting">#define             strrchr(haystack, c)</pre>
+</div>
 </div>
+<div class="refsect1">
+<a name="hkl-str.other_details"></a><h2>Types and Values</h2>
 </div>
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/Documentation/api/html/hkl.devhelp2 b/Documentation/api/html/hkl.devhelp2
index 05c460d..d99eedf 100644
--- a/Documentation/api/html/hkl.devhelp2
+++ b/Documentation/api/html/hkl.devhelp2
@@ -46,318 +46,319 @@
   </chapters>
   <functions>
     <keyword type="macro" name="ARRAY_SIZE()" link="hkl-array-size.html#ARRAY-SIZE:CAPS"/>
-    <keyword type="macro" name="AUTODATA()" link="hkl-autodata.html#AUTODATA:CAPS"/>
-    <keyword type="macro" name="AUTODATA_MAGIC" link="hkl-autodata.html#AUTODATA-MAGIC:CAPS"/>
     <keyword type="macro" name="AUTODATA_TYPE()" link="hkl-autodata.html#AUTODATA-TYPE:CAPS"/>
-    <keyword type="macro" name="AUTODATA_VAR_()" link="hkl-autodata.html#AUTODATA-VAR-:CAPS"/>
-    <keyword type="macro" name="AUTODATA_VAR__()" link="hkl-autodata.html#AUTODATA-VAR--:CAPS"/>
-    <keyword type="function" name="autodata_free ()" link="hkl-autodata.html#autodata-free"/>
+    <keyword type="macro" name="AUTODATA()" link="hkl-autodata.html#AUTODATA:CAPS"/>
     <keyword type="macro" name="autodata_get()" link="hkl-autodata.html#autodata-get"/>
-    <keyword type="function" name="autodata_get_section ()" link="hkl-autodata.html#autodata-get-section"/>
-    <keyword type="function" name="autodata_make_table ()" link="hkl-autodata.html#autodata-make-table"/>
+    <keyword type="function" name="autodata_free ()" link="hkl-autodata.html#autodata-free"/>
+    <keyword type="macro" name="AUTODATA_VAR__()" link="hkl-autodata.html#AUTODATA-VAR--:CAPS"/>
+    <keyword type="macro" name="AUTODATA_VAR_()" link="hkl-autodata.html#AUTODATA-VAR-:CAPS"/>
+    <keyword type="function" name="autodata_get_section ()" link="hkl-autodata.html#autodata-get-section"/>
+    <keyword type="macro" name="AUTODATA_MAGIC" link="hkl-autodata.html#AUTODATA-MAGIC:CAPS"/>
+    <keyword type="function" name="autodata_make_table ()" link="hkl-autodata.html#autodata-make-table"/>
     <keyword type="macro" name="BUILD_ASSERT()" link="hkl-build-assert.html#BUILD-ASSERT:CAPS"/>
     <keyword type="macro" name="BUILD_ASSERT_OR_ZERO()" link="hkl-build-assert.html#BUILD-ASSERT-OR-ZERO:CAPS"/>
     <keyword type="macro" name="check_type()" link="hkl-check-type.html#check-type"/>
     <keyword type="macro" name="check_types_match()" link="hkl-check-type.html#check-types-match"/>
-    <keyword type="macro" name="COLD" link="hkl-compiler.html#COLD:CAPS"/>
-    <keyword type="macro" name="CONST_FUNCTION" link="hkl-compiler.html#CONST-FUNCTION:CAPS"/>
+    <keyword type="macro" name="PRINTF_FMT()" link="hkl-compiler.html#PRINTF-FMT:CAPS"/>
     <keyword type="macro" name="IS_COMPILE_CONSTANT()" link="hkl-compiler.html#IS-COMPILE-CONSTANT:CAPS"/>
-    <keyword type="macro" name="NEEDED" link="hkl-compiler.html#NEEDED:CAPS"/>
+    <keyword type="macro" name="COLD" link="hkl-compiler.html#COLD:CAPS"/>
     <keyword type="macro" name="NORETURN" link="hkl-compiler.html#NORETURN:CAPS"/>
-    <keyword type="macro" name="PRINTF_FMT()" link="hkl-compiler.html#PRINTF-FMT:CAPS"/>
+    <keyword type="macro" name="CONST_FUNCTION" link="hkl-compiler.html#CONST-FUNCTION:CAPS"/>
     <keyword type="macro" name="PURE_FUNCTION" link="hkl-compiler.html#PURE-FUNCTION:CAPS"/>
     <keyword type="macro" name="UNNEEDED" link="hkl-compiler.html#UNNEEDED:CAPS"/>
+    <keyword type="macro" name="NEEDED" link="hkl-compiler.html#NEEDED:CAPS"/>
     <keyword type="macro" name="UNUSED" link="hkl-compiler.html#UNUSED:CAPS"/>
     <keyword type="macro" name="WARN_UNUSED_RESULT" link="hkl-compiler.html#WARN-UNUSED-RESULT:CAPS"/>
     <keyword type="macro" name="container_of()" link="hkl-container-of.html#container-of"/>
-    <keyword type="macro" name="container_of_var()" link="hkl-container-of.html#container-of-var"/>
     <keyword type="macro" name="container_off()" link="hkl-container-of.html#container-off"/>
+    <keyword type="macro" name="container_of_var()" link="hkl-container-of.html#container-of-var"/>
     <keyword type="macro" name="container_off_var()" link="hkl-container-of.html#container-off-var"/>
     <keyword type="macro" name="darray()" link="hkl-darray.html#darray"/>
+    <keyword type="macro" name="darray_new" link="hkl-darray.html#darray-new"/>
+    <keyword type="macro" name="darray_init()" link="hkl-darray.html#darray-init"/>
+    <keyword type="macro" name="darray_free()" link="hkl-darray.html#darray-free"/>
+    <keyword type="function" name="darray_item ()" link="hkl-darray.html#darray-item"/>
+    <keyword type="macro" name="darray_size()" link="hkl-darray.html#darray-size"/>
     <keyword type="macro" name="darray_alloc()" link="hkl-darray.html#darray-alloc"/>
+    <keyword type="macro" name="darray_empty()" link="hkl-darray.html#darray-empty"/>
     <keyword type="macro" name="darray_append()" link="hkl-darray.html#darray-append"/>
+    <keyword type="macro" name="darray_prepend()" link="hkl-darray.html#darray-prepend"/>
+    <keyword type="macro" name="darray_push()" link="hkl-darray.html#darray-push"/>
     <keyword type="macro" name="darray_append_items()" link="hkl-darray.html#darray-append-items"/>
+    <keyword type="macro" name="darray_prepend_items()" link="hkl-darray.html#darray-prepend-items"/>
     <keyword type="macro" name="darray_append_items_nullterminate()" link="hkl-darray.html#darray-append-items-nullterminate"/>
-    <keyword type="macro" name="darray_append_lit()" link="hkl-darray.html#darray-append-lit"/>
-    <keyword type="macro" name="darray_append_string()" link="hkl-darray.html#darray-append-string"/>
+    <keyword type="macro" name="darray_prepend_items_nullterminate()" link="hkl-darray.html#darray-prepend-items-nullterminate"/>
     <keyword type="macro" name="darray_appends()" link="hkl-darray.html#darray-appends"/>
+    <keyword type="macro" name="darray_prepends()" link="hkl-darray.html#darray-prepends"/>
     <keyword type="macro" name="darray_appends_t()" link="hkl-darray.html#darray-appends-t"/>
-    <keyword type="typedef" name="darray_char" link="hkl-darray.html#darray-char"/>
-    <keyword type="macro" name="darray_empty()" link="hkl-darray.html#darray-empty"/>
-    <keyword type="macro" name="darray_foreach()" link="hkl-darray.html#darray-foreach"/>
-    <keyword type="macro" name="darray_foreach_reverse()" link="hkl-darray.html#darray-foreach-reverse"/>
-    <keyword type="macro" name="darray_free()" link="hkl-darray.html#darray-free"/>
-    <keyword type="macro" name="darray_from_c()" link="hkl-darray.html#darray-from-c"/>
-    <keyword type="macro" name="darray_from_items()" link="hkl-darray.html#darray-from-items"/>
-    <keyword type="macro" name="darray_from_lit()" link="hkl-darray.html#darray-from-lit"/>
-    <keyword type="macro" name="darray_from_string()" link="hkl-darray.html#darray-from-string"/>
-    <keyword type="macro" name="darray_growalloc()" link="hkl-darray.html#darray-growalloc"/>
-    <keyword type="macro" name="darray_init()" link="hkl-darray.html#darray-init"/>
-    <keyword type="typedef" name="darray_int" link="hkl-darray.html#darray-int"/>
-    <keyword type="function" name="darray_item ()" link="hkl-darray.html#darray-item"/>
-    <keyword type="typedef" name="darray_long" link="hkl-darray.html#darray-long"/>
-    <keyword type="macro" name="darray_make_room()" link="hkl-darray.html#darray-make-room"/>
-    <keyword type="macro" name="darray_new" link="hkl-darray.html#darray-new"/>
+    <keyword type="macro" name="darray_prepends_t()" link="hkl-darray.html#darray-prepends-t"/>
     <keyword type="macro" name="darray_pop()" link="hkl-darray.html#darray-pop"/>
     <keyword type="macro" name="darray_pop_check()" link="hkl-darray.html#darray-pop-check"/>
-    <keyword type="macro" name="darray_prepend()" link="hkl-darray.html#darray-prepend"/>
-    <keyword type="macro" name="darray_prepend_items()" link="hkl-darray.html#darray-prepend-items"/>
-    <keyword type="macro" name="darray_prepend_items_nullterminate()" link="hkl-darray.html#darray-prepend-items-nullterminate"/>
-    <keyword type="macro" name="darray_prepend_lit()" link="hkl-darray.html#darray-prepend-lit"/>
+    <keyword type="macro" name="darray_from_items()" link="hkl-darray.html#darray-from-items"/>
+    <keyword type="macro" name="darray_from_c()" link="hkl-darray.html#darray-from-c"/>
+    <keyword type="macro" name="darray_append_string()" link="hkl-darray.html#darray-append-string"/>
+    <keyword type="macro" name="darray_append_lit()" link="hkl-darray.html#darray-append-lit"/>
     <keyword type="macro" name="darray_prepend_string()" link="hkl-darray.html#darray-prepend-string"/>
-    <keyword type="macro" name="darray_prepends()" link="hkl-darray.html#darray-prepends"/>
-    <keyword type="macro" name="darray_prepends_t()" link="hkl-darray.html#darray-prepends-t"/>
-    <keyword type="macro" name="darray_push()" link="hkl-darray.html#darray-push"/>
-    <keyword type="macro" name="darray_realloc()" link="hkl-darray.html#darray-realloc"/>
+    <keyword type="macro" name="darray_prepend_lit()" link="hkl-darray.html#darray-prepend-lit"/>
+    <keyword type="macro" name="darray_from_string()" link="hkl-darray.html#darray-from-string"/>
+    <keyword type="macro" name="darray_from_lit()" link="hkl-darray.html#darray-from-lit"/>
     <keyword type="macro" name="darray_resize()" link="hkl-darray.html#darray-resize"/>
     <keyword type="macro" name="darray_resize0()" link="hkl-darray.html#darray-resize0"/>
+    <keyword type="macro" name="darray_realloc()" link="hkl-darray.html#darray-realloc"/>
+    <keyword type="macro" name="darray_growalloc()" link="hkl-darray.html#darray-growalloc"/>
+    <keyword type="macro" name="darray_make_room()" link="hkl-darray.html#darray-make-room"/>
+    <keyword type="macro" name="darray_foreach()" link="hkl-darray.html#darray-foreach"/>
+    <keyword type="macro" name="darray_foreach_reverse()" link="hkl-darray.html#darray-foreach-reverse"/>
+    <keyword type="typedef" name="darray_char" link="hkl-darray.html#darray-char"/>
     <keyword type="typedef" name="darray_schar" link="hkl-darray.html#darray-schar"/>
-    <keyword type="typedef" name="darray_short" link="hkl-darray.html#darray-short"/>
-    <keyword type="macro" name="darray_size()" link="hkl-darray.html#darray-size"/>
     <keyword type="typedef" name="darray_uchar" link="hkl-darray.html#darray-uchar"/>
+    <keyword type="typedef" name="darray_short" link="hkl-darray.html#darray-short"/>
+    <keyword type="typedef" name="darray_int" link="hkl-darray.html#darray-int"/>
+    <keyword type="typedef" name="darray_long" link="hkl-darray.html#darray-long"/>
+    <keyword type="typedef" name="darray_ushort" link="hkl-darray.html#darray-ushort"/>
     <keyword type="typedef" name="darray_uint" link="hkl-darray.html#darray-uint"/>
     <keyword type="typedef" name="darray_ulong" link="hkl-darray.html#darray-ulong"/>
-    <keyword type="typedef" name="darray_ushort" link="hkl-darray.html#darray-ushort"/>
-    <keyword type="macro" name="HKLAPI" link="hkl-hkl.html#HKLAPI:CAPS"/>
-    <keyword type="macro" name="HKL_ARG_NONNULL()" link="hkl-hkl.html#HKL-ARG-NONNULL:CAPS"/>
-    <keyword type="macro" name="HKL_DEGTORAD" link="hkl-hkl.html#HKL-DEGTORAD:CAPS"/>
-    <keyword type="macro" name="HKL_DEPRECATED" link="hkl-hkl.html#HKL-DEPRECATED:CAPS"/>
     <keyword type="macro" name="HKL_DEPRECATED_FOR()" link="hkl-hkl.html#HKL-DEPRECATED-FOR:CAPS"/>
-    <keyword type="macro" name="HKL_EPSILON" link="hkl-hkl.html#HKL-EPSILON:CAPS"/>
-    <keyword type="macro" name="HKL_GEOMETRY_LIST_FOREACH()" link="hkl-hkl.html#HKL-GEOMETRY-LIST-FOREACH:CAPS"/>
+    <keyword type="macro" name="HKL_DEGTORAD" link="hkl-hkl.html#HKL-DEGTORAD:CAPS"/>
     <keyword type="macro" name="HKL_RADTODEG" link="hkl-hkl.html#HKL-RADTODEG:CAPS"/>
-    <keyword type="macro" name="HKL_SAMPLE_REFLECTIONS_FOREACH()" link="hkl-hkl.html#HKL-SAMPLE-REFLECTIONS-FOREACH:CAPS"/>
     <keyword type="macro" name="HKL_TAU" link="hkl-hkl.html#HKL-TAU:CAPS"/>
+    <keyword type="macro" name="HKL_ARG_NONNULL()" link="hkl-hkl.html#HKL-ARG-NONNULL:CAPS"/>
+    <keyword type="macro" name="HKL_GEOMETRY_LIST_FOREACH()" link="hkl-hkl.html#HKL-GEOMETRY-LIST-FOREACH:CAPS"/>
+    <keyword type="macro" name="HKL_SAMPLE_REFLECTIONS_FOREACH()" link="hkl-hkl.html#HKL-SAMPLE-REFLECTIONS-FOREACH:CAPS"/>
+    <keyword type="macro" name="HKL_DEPRECATED" link="hkl-hkl.html#HKL-DEPRECATED:CAPS"/>
     <keyword type="macro" name="HKL_TINY" link="hkl-hkl.html#HKL-TINY:CAPS"/>
+    <keyword type="macro" name="HKL_EPSILON" link="hkl-hkl.html#HKL-EPSILON:CAPS"/>
+    <keyword type="macro" name="HKLAPI" link="hkl-hkl.html#HKLAPI:CAPS"/>
     <keyword type="macro" name="HKL_WARN_UNUSED_RESULT" link="hkl-hkl.html#HKL-WARN-UNUSED-RESULT:CAPS"/>
-    <keyword type="struct" name="HklDetector" link="hkl-hkl.html#HklDetector"/>
+    <keyword type="struct" name="struct HklVector" link="hkl-hkl.html#HklVector"/>
+    <keyword type="struct" name="struct HklQuaternion" link="hkl-hkl.html#HklQuaternion"/>
+    <keyword type="typedef" name="darray_string" link="hkl-hkl.html#darray-string"/>
+    <keyword type="enum" name="enum HklUnitEnum" link="hkl-hkl.html#HklUnitEnum"/>
     <keyword type="enum" name="enum HklDetectorType" link="hkl-hkl.html#HklDetectorType"/>
-    <keyword type="struct" name="HklEngine" link="hkl-hkl.html#HklEngine"/>
-    <keyword type="enum" name="enum HklEngineAxisNamesGet" link="hkl-hkl.html#HklEngineAxisNamesGet"/>
+    <keyword type="typedef" name="darray_engine" link="hkl-hkl.html#darray-engine"/>
     <keyword type="enum" name="enum HklEngineCapabilities" link="hkl-hkl.html#HklEngineCapabilities"/>
+    <keyword type="enum" name="enum HklEngineAxisNamesGet" link="hkl-hkl.html#HklEngineAxisNamesGet"/>
     <keyword type="enum" name="enum HklEngineDependencies" link="hkl-hkl.html#HklEngineDependencies"/>
-    <keyword type="struct" name="HklEngineList" link="hkl-hkl.html#HklEngineList"/>
+    <keyword type="struct" name="HklGeometryListItem" link="hkl-hkl.html#HklGeometryListItem"/>
     <keyword type="struct" name="HklFactory" link="hkl-hkl.html#HklFactory"/>
     <keyword type="struct" name="HklGeometry" link="hkl-hkl.html#HklGeometry"/>
-    <keyword type="struct" name="HklGeometryList" link="hkl-hkl.html#HklGeometryList"/>
-    <keyword type="struct" name="HklGeometryListItem" link="hkl-hkl.html#HklGeometryListItem"/>
-    <keyword type="struct" name="HklLattice" link="hkl-hkl.html#HklLattice"/>
-    <keyword type="struct" name="HklMatrix" link="hkl-hkl.html#HklMatrix"/>
     <keyword type="struct" name="HklParameter" link="hkl-hkl.html#HklParameter"/>
-    <keyword type="struct" name="struct HklQuaternion" link="hkl-hkl.html#HklQuaternion"/>
-    <keyword type="struct" name="HklSample" link="hkl-hkl.html#HklSample"/>
+    <keyword type="struct" name="HklEngine" link="hkl-hkl.html#HklEngine"/>
+    <keyword type="struct" name="HklMatrix" link="hkl-hkl.html#HklMatrix"/>
     <keyword type="struct" name="HklSampleReflection" link="hkl-hkl.html#HklSampleReflection"/>
-    <keyword type="enum" name="enum HklUnitEnum" link="hkl-hkl.html#HklUnitEnum"/>
-    <keyword type="struct" name="struct HklVector" link="hkl-hkl.html#HklVector"/>
-    <keyword type="typedef" name="darray_engine" link="hkl-hkl.html#darray-engine"/>
-    <keyword type="typedef" name="darray_string" link="hkl-hkl.html#darray-string"/>
+    <keyword type="struct" name="HklSample" link="hkl-hkl.html#HklSample"/>
+    <keyword type="struct" name="HklEngineList" link="hkl-hkl.html#HklEngineList"/>
+    <keyword type="struct" name="HklDetector" link="hkl-hkl.html#HklDetector"/>
+    <keyword type="struct" name="HklLattice" link="hkl-hkl.html#HklLattice"/>
+    <keyword type="struct" name="HklGeometryList" link="hkl-hkl.html#HklGeometryList"/>
+    <keyword type="function" name="hkl_parameter_new_axis ()" link="hkl-hkl-axis-private.html#hkl-parameter-new-axis"/>
     <keyword type="struct" name="struct HklAxis" link="hkl-hkl-axis-private.html#HklAxis"/>
-    <keyword type="function" name="hkl_parameter_new_axis ()" link="hkl-hkl-axis-private.html#hkl-parameter-new-axis"/>
+    <keyword type="function" name="hkl_detector_new ()" link="hkl-hkl-detector-private.html#hkl-detector-new"/>
+    <keyword type="function" name="hkl_detector_attach_to_holder ()" link="hkl-hkl-detector-private.html#hkl-detector-attach-to-holder"/>
+    <keyword type="function" name="hkl_detector_compute_kf ()" link="hkl-hkl-detector-private.html#hkl-detector-compute-kf"/>
     <keyword type="struct" name="HklDetector" link="hkl-hkl-detector-private.html#HklDetector"/>
-    <keyword type="function" name="hkl_detector_attach_to_holder ()" link="hkl-hkl-detector-private.html#hkl-detector-attach-to-holder"/>
-    <keyword type="function" name="hkl_detector_compute_kf ()" link="hkl-hkl-detector-private.html#hkl-detector-compute-kf"/>
-    <keyword type="function" name="hkl_detector_new ()" link="hkl-hkl-detector-private.html#hkl-detector-new"/>
-    <keyword type="struct" name="HklFactory" link="hkl-hkl-factory-private.html#HklFactory"/>
-    <keyword type="function" name="HklFactoryEngineListFunction ()" link="hkl-hkl-factory-private.html#HklFactoryEngineListFunction"/>
-    <keyword type="function" name="HklFactoryGeometryFunction ()" link="hkl-hkl-factory-private.html#HklFactoryGeometryFunction"/>
+    <keyword type="function" name="HklFactoryGeometryFunction ()" link="hkl-hkl-factory-private.html#HklFactoryGeometryFunction"/>
+    <keyword type="function" name="HklFactoryEngineListFunction ()" link="hkl-hkl-factory-private.html#HklFactoryEngineListFunction"/>
     <keyword type="macro" name="REGISTER_DIFFRACTOMETER()" link="hkl-hkl-factory-private.html#REGISTER-DIFFRACTOMETER:CAPS"/>
-    <keyword type="macro" name="HKL_GEOMETRY_ERROR" link="hkl-hkl-geometry-private.html#HKL-GEOMETRY-ERROR:CAPS"/>
+    <keyword type="struct" name="HklFactory" link="hkl-hkl-factory-private.html#HklFactory"/>
+    <keyword type="function" name="HklGeometryListMultiplyFunction ()" link="hkl-hkl-geometry-private.html#HklGeometryListMultiplyFunction"/>
+    <keyword type="function" name="g_quark_from_static_string ()" link="hkl-hkl-geometry-private.html#g-quark-from-static-string"/>
+    <keyword type="function" name="hkl_holder_add_rotation_axis ()" link="hkl-hkl-geometry-private.html#hkl-holder-add-rotation-axis"/>
+    <keyword type="function" name="hkl_geometry_new ()" link="hkl-hkl-geometry-private.html#hkl-geometry-new"/>
+    <keyword type="function" name="hkl_geometry_init_geometry ()" link="hkl-hkl-geometry-private.html#hkl-geometry-init-geometry"/>
+    <keyword type="function" name="hkl_geometry_add_holder ()" link="hkl-hkl-geometry-private.html#hkl-geometry-add-holder"/>
+    <keyword type="function" name="hkl_geometry_update ()" link="hkl-hkl-geometry-private.html#hkl-geometry-update"/>
+    <keyword type="function" name="hkl_geometry_get_axis_idx_by_name ()" link="hkl-hkl-geometry-private.html#hkl-geometry-get-axis-idx-by-name"/>
+    <keyword type="function" name="hkl_geometry_get_axis_by_name ()" link="hkl-hkl-geometry-private.html#hkl-geometry-get-axis-by-name"/>
+    <keyword type="function" name="hkl_geometry_distance ()" link="hkl-hkl-geometry-private.html#hkl-geometry-distance"/>
+    <keyword type="function" name="hkl_geometry_distance_orthodromic ()" link="hkl-hkl-geometry-private.html#hkl-geometry-distance-orthodromic"/>
+    <keyword type="function" name="hkl_geometry_closest_from_geometry_with_range ()" link="hkl-hkl-geometry-private.html#hkl-geometry-closest-from-geometry-with-range"/>
+    <keyword type="function" name="hkl_geometry_is_valid ()" link="hkl-hkl-geometry-private.html#hkl-geometry-is-valid"/>
+    <keyword type="function" name="hkl_geometry_list_new ()" link="hkl-hkl-geometry-private.html#hkl-geometry-list-new"/>
+    <keyword type="function" name="hkl_geometry_list_new_copy ()" link="hkl-hkl-geometry-private.html#hkl-geometry-list-new-copy"/>
+    <keyword type="function" name="hkl_geometry_list_add ()" link="hkl-hkl-geometry-private.html#hkl-geometry-list-add"/>
+    <keyword type="function" name="hkl_geometry_list_reset ()" link="hkl-hkl-geometry-private.html#hkl-geometry-list-reset"/>
+    <keyword type="function" name="hkl_geometry_list_sort ()" link="hkl-hkl-geometry-private.html#hkl-geometry-list-sort"/>
+    <keyword type="function" name="hkl_geometry_list_fprintf ()" link="hkl-hkl-geometry-private.html#hkl-geometry-list-fprintf"/>
+    <keyword type="function" name="hkl_geometry_list_multiply ()" link="hkl-hkl-geometry-private.html#hkl-geometry-list-multiply"/>
+    <keyword type="function" name="hkl_geometry_list_multiply_from_range ()" link="hkl-hkl-geometry-private.html#hkl-geometry-list-multiply-from-range"/>
+    <keyword type="function" name="hkl_geometry_list_remove_invalid ()" link="hkl-hkl-geometry-private.html#hkl-geometry-list-remove-invalid"/>
+    <keyword type="function" name="hkl_geometry_list_item_new ()" link="hkl-hkl-geometry-private.html#hkl-geometry-list-item-new"/>
+    <keyword type="function" name="hkl_geometry_list_item_new_copy ()" link="hkl-hkl-geometry-private.html#hkl-geometry-list-item-new-copy"/>
+    <keyword type="function" name="hkl_geometry_list_item_free ()" link="hkl-hkl-geometry-private.html#hkl-geometry-list-item-free"/>
+    <keyword type="typedef" name="darray_holder" link="hkl-hkl-geometry-private.html#darray-holder"/>
+    <keyword type="struct" name="struct HklHolderConfig" link="hkl-hkl-geometry-private.html#HklHolderConfig"/>
+    <keyword type="struct" name="struct HklHolder" link="hkl-hkl-geometry-private.html#HklHolder"/>
     <keyword type="struct" name="HklGeometry" link="hkl-hkl-geometry-private.html#HklGeometry"/>
+    <keyword type="macro" name="HKL_GEOMETRY_ERROR" link="hkl-hkl-geometry-private.html#HKL-GEOMETRY-ERROR:CAPS"/>
     <keyword type="enum" name="enum HklGeometryError" link="hkl-hkl-geometry-private.html#HklGeometryError"/>
     <keyword type="struct" name="HklGeometryList" link="hkl-hkl-geometry-private.html#HklGeometryList"/>
     <keyword type="struct" name="HklGeometryListItem" link="hkl-hkl-geometry-private.html#HklGeometryListItem"/>
-    <keyword type="function" name="HklGeometryListMultiplyFunction ()" link="hkl-hkl-geometry-private.html#HklGeometryListMultiplyFunction"/>
-    <keyword type="struct" name="struct HklHolder" link="hkl-hkl-geometry-private.html#HklHolder"/>
-    <keyword type="typedef" name="darray_holder" link="hkl-hkl-geometry-private.html#darray-holder"/>
-    <keyword type="function" name="g_quark_from_static_string ()" link="hkl-hkl-geometry-private.html#g-quark-from-static-string"/>
-    <keyword type="function" name="hkl_geometry_add_holder ()" link="hkl-hkl-geometry-private.html#hkl-geometry-add-holder"/>
-    <keyword type="function" name="hkl_geometry_closest_from_geometry_with_range ()" link="hkl-hkl-geometry-private.html#hkl-geometry-closest-from-geometry-with-range"/>
-    <keyword type="function" name="hkl_geometry_distance ()" link="hkl-hkl-geometry-private.html#hkl-geometry-distance"/>
-    <keyword type="function" name="hkl_geometry_distance_orthodromic ()" link="hkl-hkl-geometry-private.html#hkl-geometry-distance-orthodromic"/>
-    <keyword type="function" name="hkl_geometry_get_axis_by_name ()" link="hkl-hkl-geometry-private.html#hkl-geometry-get-axis-by-name"/>
-    <keyword type="function" name="hkl_geometry_get_axis_idx_by_name ()" link="hkl-hkl-geometry-private.html#hkl-geometry-get-axis-idx-by-name"/>
-    <keyword type="function" name="hkl_geometry_init_geometry ()" link="hkl-hkl-geometry-private.html#hkl-geometry-init-geometry"/>
-    <keyword type="function" name="hkl_geometry_is_valid ()" link="hkl-hkl-geometry-private.html#hkl-geometry-is-valid"/>
-    <keyword type="function" name="hkl_geometry_list_add ()" link="hkl-hkl-geometry-private.html#hkl-geometry-list-add"/>
-    <keyword type="function" name="hkl_geometry_list_fprintf ()" link="hkl-hkl-geometry-private.html#hkl-geometry-list-fprintf"/>
-    <keyword type="function" name="hkl_geometry_list_item_free ()" link="hkl-hkl-geometry-private.html#hkl-geometry-list-item-free"/>
-    <keyword type="function" name="hkl_geometry_list_item_new ()" link="hkl-hkl-geometry-private.html#hkl-geometry-list-item-new"/>
-    <keyword type="function" name="hkl_geometry_list_item_new_copy ()" link="hkl-hkl-geometry-private.html#hkl-geometry-list-item-new-copy"/>
-    <keyword type="function" name="hkl_geometry_list_multiply ()" link="hkl-hkl-geometry-private.html#hkl-geometry-list-multiply"/>
-    <keyword type="function" name="hkl_geometry_list_multiply_from_range ()" link="hkl-hkl-geometry-private.html#hkl-geometry-list-multiply-from-range"/>
-    <keyword type="function" name="hkl_geometry_list_new ()" link="hkl-hkl-geometry-private.html#hkl-geometry-list-new"/>
-    <keyword type="function" name="hkl_geometry_list_new_copy ()" link="hkl-hkl-geometry-private.html#hkl-geometry-list-new-copy"/>
-    <keyword type="function" name="hkl_geometry_list_remove_invalid ()" link="hkl-hkl-geometry-private.html#hkl-geometry-list-remove-invalid"/>
-    <keyword type="function" name="hkl_geometry_list_reset ()" link="hkl-hkl-geometry-private.html#hkl-geometry-list-reset"/>
-    <keyword type="function" name="hkl_geometry_list_sort ()" link="hkl-hkl-geometry-private.html#hkl-geometry-list-sort"/>
-    <keyword type="function" name="hkl_geometry_new ()" link="hkl-hkl-geometry-private.html#hkl-geometry-new"/>
-    <keyword type="function" name="hkl_geometry_update ()" link="hkl-hkl-geometry-private.html#hkl-geometry-update"/>
-    <keyword type="function" name="hkl_holder_add_rotation_axis ()" link="hkl-hkl-geometry-private.html#hkl-holder-add-rotation-axis"/>
+    <keyword type="function" name="hkl_interval_dup ()" link="hkl-hkl-interval-private.html#hkl-interval-dup"/>
+    <keyword type="function" name="hkl_interval_free ()" link="hkl-hkl-interval-private.html#hkl-interval-free"/>
+    <keyword type="function" name="hkl_interval_cmp ()" link="hkl-hkl-interval-private.html#hkl-interval-cmp"/>
+    <keyword type="function" name="hkl_interval_plus_interval ()" link="hkl-hkl-interval-private.html#hkl-interval-plus-interval"/>
+    <keyword type="function" name="hkl_interval_plus_double ()" link="hkl-hkl-interval-private.html#hkl-interval-plus-double"/>
+    <keyword type="function" name="hkl_interval_minus_interval ()" link="hkl-hkl-interval-private.html#hkl-interval-minus-interval"/>
+    <keyword type="function" name="hkl_interval_minus_double ()" link="hkl-hkl-interval-private.html#hkl-interval-minus-double"/>
+    <keyword type="function" name="hkl_interval_times_interval ()" link="hkl-hkl-interval-private.html#hkl-interval-times-interval"/>
+    <keyword type="function" name="hkl_interval_times_double ()" link="hkl-hkl-interval-private.html#hkl-interval-times-double"/>
+    <keyword type="function" name="hkl_interval_divides_double ()" link="hkl-hkl-interval-private.html#hkl-interval-divides-double"/>
+    <keyword type="function" name="hkl_interval_contain_zero ()" link="hkl-hkl-interval-private.html#hkl-interval-contain-zero"/>
+    <keyword type="function" name="hkl_interval_cos ()" link="hkl-hkl-interval-private.html#hkl-interval-cos"/>
+    <keyword type="function" name="hkl_interval_acos ()" link="hkl-hkl-interval-private.html#hkl-interval-acos"/>
+    <keyword type="function" name="hkl_interval_sin ()" link="hkl-hkl-interval-private.html#hkl-interval-sin"/>
+    <keyword type="function" name="hkl_interval_asin ()" link="hkl-hkl-interval-private.html#hkl-interval-asin"/>
+    <keyword type="function" name="hkl_interval_tan ()" link="hkl-hkl-interval-private.html#hkl-interval-tan"/>
+    <keyword type="function" name="hkl_interval_atan ()" link="hkl-hkl-interval-private.html#hkl-interval-atan"/>
+    <keyword type="function" name="hkl_interval_length ()" link="hkl-hkl-interval-private.html#hkl-interval-length"/>
+    <keyword type="function" name="hkl_interval_angle_restrict_symm ()" link="hkl-hkl-interval-private.html#hkl-interval-angle-restrict-symm"/>
     <keyword type="struct" name="struct HklInterval" link="hkl-hkl-interval-private.html#HklInterval"/>
-    <keyword type="function" name="hkl_interval_acos ()" link="hkl-hkl-interval-private.html#hkl-interval-acos"/>
-    <keyword type="function" name="hkl_interval_angle_restrict_symm ()" link="hkl-hkl-interval-private.html#hkl-interval-angle-restrict-symm"/>
-    <keyword type="function" name="hkl_interval_asin ()" link="hkl-hkl-interval-private.html#hkl-interval-asin"/>
-    <keyword type="function" name="hkl_interval_atan ()" link="hkl-hkl-interval-private.html#hkl-interval-atan"/>
-    <keyword type="function" name="hkl_interval_cmp ()" link="hkl-hkl-interval-private.html#hkl-interval-cmp"/>
-    <keyword type="function" name="hkl_interval_contain_zero ()" link="hkl-hkl-interval-private.html#hkl-interval-contain-zero"/>
-    <keyword type="function" name="hkl_interval_cos ()" link="hkl-hkl-interval-private.html#hkl-interval-cos"/>
-    <keyword type="function" name="hkl_interval_divides_double ()" link="hkl-hkl-interval-private.html#hkl-interval-divides-double"/>
-    <keyword type="function" name="hkl_interval_dup ()" link="hkl-hkl-interval-private.html#hkl-interval-dup"/>
-    <keyword type="function" name="hkl_interval_free ()" link="hkl-hkl-interval-private.html#hkl-interval-free"/>
-    <keyword type="function" name="hkl_interval_length ()" link="hkl-hkl-interval-private.html#hkl-interval-length"/>
-    <keyword type="function" name="hkl_interval_minus_double ()" link="hkl-hkl-interval-private.html#hkl-interval-minus-double"/>
-    <keyword type="function" name="hkl_interval_minus_interval ()" link="hkl-hkl-interval-private.html#hkl-interval-minus-interval"/>
-    <keyword type="function" name="hkl_interval_plus_double ()" link="hkl-hkl-interval-private.html#hkl-interval-plus-double"/>
-    <keyword type="function" name="hkl_interval_plus_interval ()" link="hkl-hkl-interval-private.html#hkl-interval-plus-interval"/>
-    <keyword type="function" name="hkl_interval_sin ()" link="hkl-hkl-interval-private.html#hkl-interval-sin"/>
-    <keyword type="function" name="hkl_interval_tan ()" link="hkl-hkl-interval-private.html#hkl-interval-tan"/>
-    <keyword type="function" name="hkl_interval_times_double ()" link="hkl-hkl-interval-private.html#hkl-interval-times-double"/>
-    <keyword type="function" name="hkl_interval_times_interval ()" link="hkl-hkl-interval-private.html#hkl-interval-times-interval"/>
-    <keyword type="macro" name="HKL_LATTICE_ERROR" link="hkl-hkl-lattice-private.html#HKL-LATTICE-ERROR:CAPS"/>
+    <keyword type="function" name="g_quark_from_static_string ()" link="hkl-hkl-lattice-private.html#g-quark-from-static-string"/>
+    <keyword type="function" name="hkl_lattice_lattice_set ()" link="hkl-hkl-lattice-private.html#hkl-lattice-lattice-set"/>
+    <keyword type="function" name="hkl_lattice_randomize ()" link="hkl-hkl-lattice-private.html#hkl-lattice-randomize"/>
+    <keyword type="function" name="hkl_lattice_fprintf ()" link="hkl-hkl-lattice-private.html#hkl-lattice-fprintf"/>
     <keyword type="struct" name="HklLattice" link="hkl-hkl-lattice-private.html#HklLattice"/>
+    <keyword type="macro" name="HKL_LATTICE_ERROR" link="hkl-hkl-lattice-private.html#HKL-LATTICE-ERROR:CAPS"/>
     <keyword type="enum" name="enum HklLatticeError" link="hkl-hkl-lattice-private.html#HklLatticeError"/>
-    <keyword type="function" name="g_quark_from_static_string ()" link="hkl-hkl-lattice-private.html#g-quark-from-static-string"/>
-    <keyword type="function" name="hkl_lattice_fprintf ()" link="hkl-hkl-lattice-private.html#hkl-lattice-fprintf"/>
-    <keyword type="function" name="hkl_lattice_lattice_set ()" link="hkl-hkl-lattice-private.html#hkl-lattice-lattice-set"/>
-    <keyword type="function" name="hkl_lattice_randomize ()" link="hkl-hkl-lattice-private.html#hkl-lattice-randomize"/>
+    <keyword type="macro" name="hkl_assert()" link="hkl-hkl-macros-private.html#hkl-assert"/>
+    <keyword type="macro" name="hkl_error()" link="hkl-hkl-macros-private.html#hkl-error"/>
+    <keyword type="macro" name="G_GNUC_PRINTF()" link="hkl-hkl-macros-private.html#G-GNUC-PRINTF:CAPS"/>
+    <keyword type="macro" name="alloc_nr()" link="hkl-hkl-macros-private.html#alloc-nr"/>
     <keyword type="macro" name="ALLOC_GROW()" link="hkl-hkl-macros-private.html#ALLOC-GROW:CAPS"/>
     <keyword type="macro" name="DARRAY()" link="hkl-hkl-macros-private.html#DARRAY:CAPS"/>
-    <keyword type="macro" name="G_GNUC_PRINTF()" link="hkl-hkl-macros-private.html#G-GNUC-PRINTF:CAPS"/>
-    <keyword type="macro" name="HKL_EULERIAN_KAPPA_SOLUTION" link="hkl-hkl-macros-private.html#HKL-EULERIAN-KAPPA-SOLUTION:CAPS"/>
+    <keyword type="function" name="hkl_printbt ()" link="hkl-hkl-macros-private.html#hkl-printbt"/>
     <keyword type="macro" name="HKL_MALLOC()" link="hkl-hkl-macros-private.html#HKL-MALLOC:CAPS"/>
+    <keyword type="macro" name="HKL_EULERIAN_KAPPA_SOLUTION" link="hkl-hkl-macros-private.html#HKL-EULERIAN-KAPPA-SOLUTION:CAPS"/>
     <keyword type="macro" name="NORETURN" link="hkl-hkl-macros-private.html#NORETURN:CAPS"/>
-    <keyword type="macro" name="alloc_nr()" link="hkl-hkl-macros-private.html#alloc-nr"/>
-    <keyword type="macro" name="hkl_assert()" link="hkl-hkl-macros-private.html#hkl-assert"/>
-    <keyword type="macro" name="hkl_error()" link="hkl-hkl-macros-private.html#hkl-error"/>
-    <keyword type="function" name="hkl_printbt ()" link="hkl-hkl-macros-private.html#hkl-printbt"/>
+    <keyword type="function" name="hkl_matrix_dup ()" link="hkl-hkl-matrix-private.html#hkl-matrix-dup"/>
+    <keyword type="function" name="hkl_matrix_init_from_euler ()" link="hkl-hkl-matrix-private.html#hkl-matrix-init-from-euler"/>
+    <keyword type="function" name="hkl_matrix_matrix_set ()" link="hkl-hkl-matrix-private.html#hkl-matrix-matrix-set"/>
+    <keyword type="function" name="hkl_matrix_init_from_two_vector ()" link="hkl-hkl-matrix-private.html#hkl-matrix-init-from-two-vector"/>
+    <keyword type="function" name="hkl_matrix_fprintf ()" link="hkl-hkl-matrix-private.html#hkl-matrix-fprintf"/>
+    <keyword type="function" name="hkl_matrix_to_euler ()" link="hkl-hkl-matrix-private.html#hkl-matrix-to-euler"/>
+    <keyword type="function" name="hkl_matrix_times_vector ()" link="hkl-hkl-matrix-private.html#hkl-matrix-times-vector"/>
+    <keyword type="function" name="hkl_matrix_transpose ()" link="hkl-hkl-matrix-private.html#hkl-matrix-transpose"/>
+    <keyword type="function" name="hkl_matrix_det ()" link="hkl-hkl-matrix-private.html#hkl-matrix-det"/>
+    <keyword type="function" name="hkl_matrix_solve ()" link="hkl-hkl-matrix-private.html#hkl-matrix-solve"/>
+    <keyword type="function" name="hkl_matrix_is_null ()" link="hkl-hkl-matrix-private.html#hkl-matrix-is-null"/>
     <keyword type="struct" name="HklMatrix" link="hkl-hkl-matrix-private.html#HklMatrix"/>
-    <keyword type="function" name="hkl_matrix_det ()" link="hkl-hkl-matrix-private.html#hkl-matrix-det"/>
-    <keyword type="function" name="hkl_matrix_dup ()" link="hkl-hkl-matrix-private.html#hkl-matrix-dup"/>
-    <keyword type="function" name="hkl_matrix_fprintf ()" link="hkl-hkl-matrix-private.html#hkl-matrix-fprintf"/>
-    <keyword type="function" name="hkl_matrix_init_from_euler ()" link="hkl-hkl-matrix-private.html#hkl-matrix-init-from-euler"/>
-    <keyword type="function" name="hkl_matrix_init_from_two_vector ()" link="hkl-hkl-matrix-private.html#hkl-matrix-init-from-two-vector"/>
-    <keyword type="function" name="hkl_matrix_is_null ()" link="hkl-hkl-matrix-private.html#hkl-matrix-is-null"/>
-    <keyword type="function" name="hkl_matrix_matrix_set ()" link="hkl-hkl-matrix-private.html#hkl-matrix-matrix-set"/>
-    <keyword type="function" name="hkl_matrix_solve ()" link="hkl-hkl-matrix-private.html#hkl-matrix-solve"/>
-    <keyword type="function" name="hkl_matrix_times_vector ()" link="hkl-hkl-matrix-private.html#hkl-matrix-times-vector"/>
-    <keyword type="function" name="hkl_matrix_to_euler ()" link="hkl-hkl-matrix-private.html#hkl-matrix-to-euler"/>
-    <keyword type="function" name="hkl_matrix_transpose ()" link="hkl-hkl-matrix-private.html#hkl-matrix-transpose"/>
+    <keyword type="function" name="g_quark_from_static_string ()" link="hkl-hkl-parameter-private.html#g-quark-from-static-string"/>
+    <keyword type="function" name="fprintf ()" link="hkl-hkl-parameter-private.html#fprintf"/>
+    <keyword type="function" name="hkl_parameter_new ()" link="hkl-hkl-parameter-private.html#hkl-parameter-new"/>
+    <keyword type="function" name="hkl_parameter_init_copy ()" link="hkl-hkl-parameter-private.html#hkl-parameter-init-copy"/>
+    <keyword type="function" name="hkl_parameter_value_get_closest ()" link="hkl-hkl-parameter-private.html#hkl-parameter-value-get-closest"/>
+    <keyword type="function" name="hkl_parameter_value_set_smallest_in_range ()" link="hkl-hkl-parameter-private.html#hkl-parameter-value-set-smallest-in-range"/>
+    <keyword type="function" name="hkl_parameter_is_valid ()" link="hkl-hkl-parameter-private.html#hkl-parameter-is-valid"/>
+    <keyword type="function" name="hkl_parameter_fprintf ()" link="hkl-hkl-parameter-private.html#hkl-parameter-fprintf"/>
+    <keyword type="struct" name="HklParameter" link="hkl-hkl-parameter-private.html#HklParameter"/>
     <keyword type="macro" name="HKL_PARAMETER_DEFAULTS" link="hkl-hkl-parameter-private.html#HKL-PARAMETER-DEFAULTS:CAPS"/>
     <keyword type="macro" name="HKL_PARAMETER_DEFAULTS_ANGLE" link="hkl-hkl-parameter-private.html#HKL-PARAMETER-DEFAULTS-ANGLE:CAPS"/>
     <keyword type="macro" name="HKL_PARAMETER_ERROR" link="hkl-hkl-parameter-private.html#HKL-PARAMETER-ERROR:CAPS"/>
-    <keyword type="macro" name="HKL_PARAMETER_OPERATIONS_DEFAULTS" link="hkl-hkl-parameter-private.html#HKL-PARAMETER-OPERATIONS-DEFAULTS:CAPS"/>
-    <keyword type="struct" name="HklParameter" link="hkl-hkl-parameter-private.html#HklParameter"/>
     <keyword type="enum" name="enum HklParameterError" link="hkl-hkl-parameter-private.html#HklParameterError"/>
     <keyword type="struct" name="struct HklParameterOperations" link="hkl-hkl-parameter-private.html#HklParameterOperations"/>
-    <keyword type="variable" name="alea" link="hkl-hkl-parameter-private.html#alea"/>
-    <keyword type="typedef" name="darray_parameter" link="hkl-hkl-parameter-private.html#darray-parameter"/>
+    <keyword type="macro" name="HKL_PARAMETER_OPERATIONS_DEFAULTS" link="hkl-hkl-parameter-private.html#HKL-PARAMETER-OPERATIONS-DEFAULTS:CAPS"/>
     <keyword type="variable" name="dup" link="hkl-hkl-parameter-private.html#dup"/>
+    <keyword type="variable" name="alea" link="hkl-hkl-parameter-private.html#alea"/>
     <keyword type="variable" name="factor" link="hkl-hkl-parameter-private.html#factor"/>
-    <keyword type="function" name="fprintf ()" link="hkl-hkl-parameter-private.html#fprintf"/>
-    <keyword type="function" name="g_quark_from_static_string ()" link="hkl-hkl-parameter-private.html#g-quark-from-static-string"/>
-    <keyword type="function" name="hkl_parameter_fprintf ()" link="hkl-hkl-parameter-private.html#hkl-parameter-fprintf"/>
-    <keyword type="function" name="hkl_parameter_init_copy ()" link="hkl-hkl-parameter-private.html#hkl-parameter-init-copy"/>
-    <keyword type="function" name="hkl_parameter_is_valid ()" link="hkl-hkl-parameter-private.html#hkl-parameter-is-valid"/>
-    <keyword type="function" name="hkl_parameter_new ()" link="hkl-hkl-parameter-private.html#hkl-parameter-new"/>
-    <keyword type="function" name="hkl_parameter_value_get_closest ()" link="hkl-hkl-parameter-private.html#hkl-parameter-value-get-closest"/>
-    <keyword type="function" name="hkl_parameter_value_set_smallest_in_range ()" link="hkl-hkl-parameter-private.html#hkl-parameter-value-set-smallest-in-range"/>
+    <keyword type="typedef" name="darray_parameter" link="hkl-hkl-parameter-private.html#darray-parameter"/>
     <keyword type="macro" name="CHECK_NAN()" link="hkl-hkl-pseudoaxis-auto-private.html#CHECK-NAN:CAPS"/>
     <keyword type="macro" name="HKL_MODE_AUTO_INFO()" link="hkl-hkl-pseudoaxis-auto-private.html#HKL-MODE-AUTO-INFO:CAPS"/>
     <keyword type="macro" name="HKL_MODE_AUTO_INFO_WITH_PARAMS()" link="hkl-hkl-pseudoaxis-auto-private.html#HKL-MODE-AUTO-INFO-WITH-PARAMS:CAPS"/>
-    <keyword type="macro" name="HKL_MODE_AUTO_WITH_INIT_ERROR" link="hkl-hkl-pseudoaxis-auto-private.html#HKL-MODE-AUTO-WITH-INIT-ERROR:CAPS"/>
-    <keyword type="macro" name="HKL_MODE_OPERATIONS_AUTO_DEFAULTS" link="hkl-hkl-pseudoaxis-auto-private.html#HKL-MODE-OPERATIONS-AUTO-DEFAULTS:CAPS"/>
-    <keyword type="macro" name="HKL_MODE_OPERATIONS_AUTO_WITH_INIT_DEFAULTS" link="hkl-hkl-pseudoaxis-auto-private.html#HKL-MODE-OPERATIONS-AUTO-WITH-INIT-DEFAULTS:CAPS"/>
+    <keyword type="function" name="hkl_mode_auto_new ()" link="hkl-hkl-pseudoaxis-auto-private.html#hkl-mode-auto-new"/>
+    <keyword type="function" name="hkl_mode_auto_init ()" link="hkl-hkl-pseudoaxis-auto-private.html#hkl-mode-auto-init"/>
+    <keyword type="function" name="hkl_mode_auto_set_real ()" link="hkl-hkl-pseudoaxis-auto-private.html#hkl-mode-auto-set-real"/>
+    <keyword type="function" name="g_quark_from_static_string ()" link="hkl-hkl-pseudoaxis-auto-private.html#g-quark-from-static-string"/>
+    <keyword type="function" name="hkl_mode_auto_with_init_new ()" link="hkl-hkl-pseudoaxis-auto-private.html#hkl-mode-auto-with-init-new"/>
     <keyword type="struct" name="struct HklFunction" link="hkl-hkl-pseudoaxis-auto-private.html#HklFunction"/>
+    <keyword type="typedef" name="darray_function" link="hkl-hkl-pseudoaxis-auto-private.html#darray-function"/>
     <keyword type="struct" name="struct HklModeAutoInfo" link="hkl-hkl-pseudoaxis-auto-private.html#HklModeAutoInfo"/>
+    <keyword type="macro" name="HKL_MODE_OPERATIONS_AUTO_DEFAULTS" link="hkl-hkl-pseudoaxis-auto-private.html#HKL-MODE-OPERATIONS-AUTO-DEFAULTS:CAPS"/>
     <keyword type="struct" name="struct HklModeAutoWithInit" link="hkl-hkl-pseudoaxis-auto-private.html#HklModeAutoWithInit"/>
+    <keyword type="macro" name="HKL_MODE_AUTO_WITH_INIT_ERROR" link="hkl-hkl-pseudoaxis-auto-private.html#HKL-MODE-AUTO-WITH-INIT-ERROR:CAPS"/>
     <keyword type="enum" name="enum HklModeError" link="hkl-hkl-pseudoaxis-auto-private.html#HklModeError"/>
-    <keyword type="typedef" name="darray_function" link="hkl-hkl-pseudoaxis-auto-private.html#darray-function"/>
-    <keyword type="function" name="g_quark_from_static_string ()" link="hkl-hkl-pseudoaxis-auto-private.html#g-quark-from-static-string"/>
-    <keyword type="function" name="hkl_mode_auto_init ()" link="hkl-hkl-pseudoaxis-auto-private.html#hkl-mode-auto-init"/>
-    <keyword type="function" name="hkl_mode_auto_new ()" link="hkl-hkl-pseudoaxis-auto-private.html#hkl-mode-auto-new"/>
-    <keyword type="function" name="hkl_mode_auto_set_real ()" link="hkl-hkl-pseudoaxis-auto-private.html#hkl-mode-auto-set-real"/>
-    <keyword type="function" name="hkl_mode_auto_with_init_new ()" link="hkl-hkl-pseudoaxis-auto-private.html#hkl-mode-auto-with-init-new"/>
+    <keyword type="macro" name="HKL_MODE_OPERATIONS_AUTO_WITH_INIT_DEFAULTS" link="hkl-hkl-pseudoaxis-auto-private.html#HKL-MODE-OPERATIONS-AUTO-WITH-INIT-DEFAULTS:CAPS"/>
     <keyword type="variable" name="self" link="hkl-hkl-pseudoaxis-auto-private.html#self"/>
-    <keyword type="function" name="hkl_engine_eulerians_new ()" link="hkl-hkl-pseudoaxis-common-eulerians-private.html#hkl-engine-eulerians-new"/>
-    <keyword type="function" name="kappa_2_kappap ()" link="hkl-hkl-pseudoaxis-common-eulerians-private.html#kappa-2-kappap"/>
+    <keyword type="function" name="hkl_engine_eulerians_new ()" link="hkl-hkl-pseudoaxis-common-eulerians-private.html#hkl-engine-eulerians-new"/>
+    <keyword type="function" name="kappa_2_kappap ()" link="hkl-hkl-pseudoaxis-common-eulerians-private.html#kappa-2-kappap"/>
+    <keyword type="function" name="RUBh_minus_Q ()" link="hkl-hkl-pseudoaxis-common-hkl-private.html#RUBh-minus-Q"/>
+    <keyword type="function" name="hkl_mode_get_hkl_real ()" link="hkl-hkl-pseudoaxis-common-hkl-private.html#hkl-mode-get-hkl-real"/>
+    <keyword type="function" name="hkl_mode_set_hkl_real ()" link="hkl-hkl-pseudoaxis-common-hkl-private.html#hkl-mode-set-hkl-real"/>
+    <keyword type="function" name="hkl_mode_initialized_set_psi_constant_vertical_real ()" link="hkl-hkl-pseudoaxis-common-hkl-private.html#hkl-mode-initialized-set-psi-constant-vertical-real"/>
+    <keyword type="function" name="hkl_engine_hkl_new ()" link="hkl-hkl-pseudoaxis-common-hkl-private.html#hkl-engine-hkl-new"/>
     <keyword type="macro" name="CONSTANT_PARAMETER()" link="hkl-hkl-pseudoaxis-common-hkl-private.html#CONSTANT-PARAMETER:CAPS"/>
-    <keyword type="macro" name="HKL_MODE_OPERATIONS_HKL_DEFAULTS" link="hkl-hkl-pseudoaxis-common-hkl-private.html#HKL-MODE-OPERATIONS-HKL-DEFAULTS:CAPS"/>
-    <keyword type="struct" name="struct HklEngineHkl" link="hkl-hkl-pseudoaxis-common-hkl-private.html#HklEngineHkl"/>
     <keyword type="macro" name="PSI_CONSTANT_PARAMETERS()" link="hkl-hkl-pseudoaxis-common-hkl-private.html#PSI-CONSTANT-PARAMETERS:CAPS"/>
-    <keyword type="function" name="RUBh_minus_Q ()" link="hkl-hkl-pseudoaxis-common-hkl-private.html#RUBh-minus-Q"/>
-    <keyword type="function" name="hkl_engine_hkl_new ()" link="hkl-hkl-pseudoaxis-common-hkl-private.html#hkl-engine-hkl-new"/>
-    <keyword type="function" name="hkl_mode_get_hkl_real ()" link="hkl-hkl-pseudoaxis-common-hkl-private.html#hkl-mode-get-hkl-real"/>
-    <keyword type="function" name="hkl_mode_initialized_set_psi_constant_vertical_real ()" link="hkl-hkl-pseudoaxis-common-hkl-private.html#hkl-mode-initialized-set-psi-constant-vertical-real"/>
-    <keyword type="function" name="hkl_mode_set_hkl_real ()" link="hkl-hkl-pseudoaxis-common-hkl-private.html#hkl-mode-set-hkl-real"/>
-    <keyword type="struct" name="struct HklEnginePsi" link="hkl-hkl-pseudoaxis-common-psi-private.html#HklEnginePsi"/>
+    <keyword type="struct" name="struct HklEngineHkl" link="hkl-hkl-pseudoaxis-common-hkl-private.html#HklEngineHkl"/>
+    <keyword type="macro" name="HKL_MODE_OPERATIONS_HKL_DEFAULTS" link="hkl-hkl-pseudoaxis-common-hkl-private.html#HKL-MODE-OPERATIONS-HKL-DEFAULTS:CAPS"/>
+    <keyword type="function" name="hkl_mode_psi_new ()" link="hkl-hkl-pseudoaxis-common-psi-private.html#hkl-mode-psi-new"/>
+    <keyword type="function" name="hkl_engine_psi_new ()" link="hkl-hkl-pseudoaxis-common-psi-private.html#hkl-engine-psi-new"/>
     <keyword type="struct" name="struct HklModePsi" link="hkl-hkl-pseudoaxis-common-psi-private.html#HklModePsi"/>
-    <keyword type="function" name="hkl_engine_psi_new ()" link="hkl-hkl-pseudoaxis-common-psi-private.html#hkl-engine-psi-new"/>
-    <keyword type="function" name="hkl_mode_psi_new ()" link="hkl-hkl-pseudoaxis-common-psi-private.html#hkl-mode-psi-new"/>
-    <keyword type="function" name="hkl_engine_q2_new ()" link="hkl-hkl-pseudoaxis-common-q-private.html#hkl-engine-q2-new"/>
-    <keyword type="function" name="hkl_engine_q_new ()" link="hkl-hkl-pseudoaxis-common-q-private.html#hkl-engine-q-new"/>
-    <keyword type="function" name="hkl_engine_qper_qpar_new ()" link="hkl-hkl-pseudoaxis-common-q-private.html#hkl-engine-qper-qpar-new"/>
-    <keyword type="function" name="qmax ()" link="hkl-hkl-pseudoaxis-common-q-private.html#qmax"/>
-    <keyword type="macro" name="HKL_ENGINE_ERROR" link="hkl-hkl-pseudoaxis-private.html#HKL-ENGINE-ERROR:CAPS"/>
-    <keyword type="macro" name="HKL_ENGINE_INFO()" link="hkl-hkl-pseudoaxis-private.html#HKL-ENGINE-INFO:CAPS"/>
-    <keyword type="macro" name="HKL_ENGINE_LIST_ERROR" link="hkl-hkl-pseudoaxis-private.html#HKL-ENGINE-LIST-ERROR:CAPS"/>
-    <keyword type="macro" name="HKL_ENGINE_OPERATIONS_DEFAULTS" link="hkl-hkl-pseudoaxis-private.html#HKL-ENGINE-OPERATIONS-DEFAULTS:CAPS"/>
-    <keyword type="macro" name="HKL_MODE_INFO()" link="hkl-hkl-pseudoaxis-private.html#HKL-MODE-INFO:CAPS"/>
+    <keyword type="struct" name="struct HklEnginePsi" link="hkl-hkl-pseudoaxis-common-psi-private.html#HklEnginePsi"/>
+    <keyword type="function" name="qmax ()" link="hkl-hkl-pseudoaxis-common-q-private.html#qmax"/>
+    <keyword type="function" name="hkl_engine_q_new ()" link="hkl-hkl-pseudoaxis-common-q-private.html#hkl-engine-q-new"/>
+    <keyword type="function" name="hkl_engine_q2_new ()" link="hkl-hkl-pseudoaxis-common-q-private.html#hkl-engine-q2-new"/>
+    <keyword type="function" name="hkl_engine_qper_qpar_new ()" link="hkl-hkl-pseudoaxis-common-q-private.html#hkl-engine-qper-qpar-new"/>
     <keyword type="macro" name="HKL_MODE_INFO_RO()" link="hkl-hkl-pseudoaxis-private.html#HKL-MODE-INFO-RO:CAPS"/>
+    <keyword type="macro" name="HKL_MODE_INFO()" link="hkl-hkl-pseudoaxis-private.html#HKL-MODE-INFO:CAPS"/>
     <keyword type="macro" name="HKL_MODE_INFO_RO_WITH_PARAMS()" link="hkl-hkl-pseudoaxis-private.html#HKL-MODE-INFO-RO-WITH-PARAMS:CAPS"/>
     <keyword type="macro" name="HKL_MODE_INFO_WITH_PARAMS()" link="hkl-hkl-pseudoaxis-private.html#HKL-MODE-INFO-WITH-PARAMS:CAPS"/>
+    <keyword type="macro" name="HKL_ENGINE_INFO()" link="hkl-hkl-pseudoaxis-private.html#HKL-ENGINE-INFO:CAPS"/>
+    <keyword type="function" name="g_quark_from_static_string ()" link="hkl-hkl-pseudoaxis-private.html#g-quark-from-static-string"/>
+    <keyword type="function" name="darray_item ()" link="hkl-hkl-pseudoaxis-private.html#darray-item"/>
+    <keyword type="typedef" name="darray_mode" link="hkl-hkl-pseudoaxis-private.html#darray-mode"/>
+    <keyword type="struct" name="struct HklModeInfo" link="hkl-hkl-pseudoaxis-private.html#HklModeInfo"/>
+    <keyword type="struct" name="struct HklModeOperations" link="hkl-hkl-pseudoaxis-private.html#HklModeOperations"/>
     <keyword type="macro" name="HKL_MODE_OPERATIONS_DEFAULTS" link="hkl-hkl-pseudoaxis-private.html#HKL-MODE-OPERATIONS-DEFAULTS:CAPS"/>
-    <keyword type="struct" name="HklEngine" link="hkl-hkl-pseudoaxis-private.html#HklEngine"/>
-    <keyword type="enum" name="enum HklEngineError" link="hkl-hkl-pseudoaxis-private.html#HklEngineError"/>
+    <keyword type="struct" name="struct HklMode" link="hkl-hkl-pseudoaxis-private.html#HklMode"/>
+    <keyword type="variable" name="self" link="hkl-hkl-pseudoaxis-private.html#self"/>
     <keyword type="struct" name="struct HklEngineInfo" link="hkl-hkl-pseudoaxis-private.html#HklEngineInfo"/>
+    <keyword type="struct" name="HklEngine" link="hkl-hkl-pseudoaxis-private.html#HklEngine"/>
     <keyword type="struct" name="HklEngineList" link="hkl-hkl-pseudoaxis-private.html#HklEngineList"/>
-    <keyword type="enum" name="enum HklEngineListError" link="hkl-hkl-pseudoaxis-private.html#HklEngineListError"/>
+    <keyword type="macro" name="HKL_ENGINE_ERROR" link="hkl-hkl-pseudoaxis-private.html#HKL-ENGINE-ERROR:CAPS"/>
+    <keyword type="enum" name="enum HklEngineError" link="hkl-hkl-pseudoaxis-private.html#HklEngineError"/>
+    <keyword type="variable" name="i" link="hkl-hkl-pseudoaxis-private.html#i"/>
     <keyword type="struct" name="struct HklEngineOperations" link="hkl-hkl-pseudoaxis-private.html#HklEngineOperations"/>
-    <keyword type="struct" name="struct HklMode" link="hkl-hkl-pseudoaxis-private.html#HklMode"/>
-    <keyword type="struct" name="struct HklModeInfo" link="hkl-hkl-pseudoaxis-private.html#HklModeInfo"/>
-    <keyword type="struct" name="struct HklModeOperations" link="hkl-hkl-pseudoaxis-private.html#HklModeOperations"/>
+    <keyword type="macro" name="HKL_ENGINE_OPERATIONS_DEFAULTS" link="hkl-hkl-pseudoaxis-private.html#HKL-ENGINE-OPERATIONS-DEFAULTS:CAPS"/>
     <keyword type="variable" name="axis" link="hkl-hkl-pseudoaxis-private.html#axis"/>
-    <keyword type="function" name="darray_item ()" link="hkl-hkl-pseudoaxis-private.html#darray-item"/>
-    <keyword type="typedef" name="darray_mode" link="hkl-hkl-pseudoaxis-private.html#darray-mode"/>
-    <keyword type="function" name="g_quark_from_static_string ()" link="hkl-hkl-pseudoaxis-private.html#g-quark-from-static-string"/>
-    <keyword type="variable" name="i" link="hkl-hkl-pseudoaxis-private.html#i"/>
-    <keyword type="variable" name="self" link="hkl-hkl-pseudoaxis-private.html#self"/>
-    <keyword type="function" name="hkl_quaternion_cmp ()" link="hkl-hkl-quaternion-private.html#hkl-quaternion-cmp"/>
-    <keyword type="function" name="hkl_quaternion_conjugate ()" link="hkl-hkl-quaternion-private.html#hkl-quaternion-conjugate"/>
-    <keyword type="function" name="hkl_quaternion_dup ()" link="hkl-hkl-quaternion-private.html#hkl-quaternion-dup"/>
-    <keyword type="function" name="hkl_quaternion_fprintf ()" link="hkl-hkl-quaternion-private.html#hkl-quaternion-fprintf"/>
-    <keyword type="function" name="hkl_quaternion_free ()" link="hkl-hkl-quaternion-private.html#hkl-quaternion-free"/>
-    <keyword type="function" name="hkl_quaternion_init ()" link="hkl-hkl-quaternion-private.html#hkl-quaternion-init"/>
-    <keyword type="function" name="hkl_quaternion_init_from_angle_and_axe ()" link="hkl-hkl-quaternion-private.html#hkl-quaternion-init-from-angle-and-axe"/>
-    <keyword type="function" name="hkl_quaternion_init_from_vector ()" link="hkl-hkl-quaternion-private.html#hkl-quaternion-init-from-vector"/>
-    <keyword type="function" name="hkl_quaternion_minus_quaternion ()" link="hkl-hkl-quaternion-private.html#hkl-quaternion-minus-quaternion"/>
-    <keyword type="function" name="hkl_quaternion_norm2 ()" link="hkl-hkl-quaternion-private.html#hkl-quaternion-norm2"/>
-    <keyword type="function" name="hkl_quaternion_times_quaternion ()" link="hkl-hkl-quaternion-private.html#hkl-quaternion-times-quaternion"/>
-    <keyword type="function" name="hkl_quaternion_to_angle_and_axe ()" link="hkl-hkl-quaternion-private.html#hkl-quaternion-to-angle-and-axe"/>
-    <keyword type="function" name="hkl_quaternion_to_matrix ()" link="hkl-hkl-quaternion-private.html#hkl-quaternion-to-matrix"/>
-    <keyword type="macro" name="HKL_SAMPLE_ERROR" link="hkl-hkl-sample-private.html#HKL-SAMPLE-ERROR:CAPS"/>
-    <keyword type="macro" name="HKL_SAMPLE_REFLECTION_ERROR" link="hkl-hkl-sample-private.html#HKL-SAMPLE-REFLECTION-ERROR:CAPS"/>
+    <keyword type="macro" name="HKL_ENGINE_LIST_ERROR" link="hkl-hkl-pseudoaxis-private.html#HKL-ENGINE-LIST-ERROR:CAPS"/>
+    <keyword type="enum" name="enum HklEngineListError" link="hkl-hkl-pseudoaxis-private.html#HklEngineListError"/>
+    <keyword type="function" name="hkl_quaternion_dup ()" link="hkl-hkl-quaternion-private.html#hkl-quaternion-dup"/>
+    <keyword type="function" name="hkl_quaternion_free ()" link="hkl-hkl-quaternion-private.html#hkl-quaternion-free"/>
+    <keyword type="function" name="hkl_quaternion_init ()" link="hkl-hkl-quaternion-private.html#hkl-quaternion-init"/>
+    <keyword type="function" name="hkl_quaternion_init_from_vector ()" link="hkl-hkl-quaternion-private.html#hkl-quaternion-init-from-vector"/>
+    <keyword type="function" name="hkl_quaternion_init_from_angle_and_axe ()" link="hkl-hkl-quaternion-private.html#hkl-quaternion-init-from-angle-and-axe"/>
+    <keyword type="function" name="hkl_quaternion_fprintf ()" link="hkl-hkl-quaternion-private.html#hkl-quaternion-fprintf"/>
+    <keyword type="function" name="hkl_quaternion_cmp ()" link="hkl-hkl-quaternion-private.html#hkl-quaternion-cmp"/>
+    <keyword type="function" name="hkl_quaternion_minus_quaternion ()" link="hkl-hkl-quaternion-private.html#hkl-quaternion-minus-quaternion"/>
+    <keyword type="function" name="hkl_quaternion_times_quaternion ()" link="hkl-hkl-quaternion-private.html#hkl-quaternion-times-quaternion"/>
+    <keyword type="function" name="hkl_quaternion_norm2 ()" link="hkl-hkl-quaternion-private.html#hkl-quaternion-norm2"/>
+    <keyword type="function" name="hkl_quaternion_conjugate ()" link="hkl-hkl-quaternion-private.html#hkl-quaternion-conjugate"/>
+    <keyword type="function" name="hkl_quaternion_to_matrix ()" link="hkl-hkl-quaternion-private.html#hkl-quaternion-to-matrix"/>
+    <keyword type="function" name="hkl_quaternion_to_angle_and_axe ()" link="hkl-hkl-quaternion-private.html#hkl-quaternion-to-angle-and-axe"/>
+    <keyword type="function" name="g_quark_from_static_string ()" link="hkl-hkl-sample-private.html#g-quark-from-static-string"/>
+    <keyword type="function" name="hkl_sample_fprintf ()" link="hkl-hkl-sample-private.html#hkl-sample-fprintf"/>
+    <keyword type="function" name="hkl_sample_reflection_new_copy ()" link="hkl-hkl-sample-private.html#hkl-sample-reflection-new-copy"/>
+    <keyword type="function" name="hkl_sample_reflection_free ()" link="hkl-hkl-sample-private.html#hkl-sample-reflection-free"/>
     <keyword type="struct" name="HklSample" link="hkl-hkl-sample-private.html#HklSample"/>
+    <keyword type="macro" name="HKL_SAMPLE_ERROR" link="hkl-hkl-sample-private.html#HKL-SAMPLE-ERROR:CAPS"/>
     <keyword type="enum" name="enum HklSampleError" link="hkl-hkl-sample-private.html#HklSampleError"/>
     <keyword type="struct" name="HklSampleReflection" link="hkl-hkl-sample-private.html#HklSampleReflection"/>
+    <keyword type="macro" name="HKL_SAMPLE_REFLECTION_ERROR" link="hkl-hkl-sample-private.html#HKL-SAMPLE-REFLECTION-ERROR:CAPS"/>
     <keyword type="enum" name="enum HklSampleReflectionError" link="hkl-hkl-sample-private.html#HklSampleReflectionError"/>
-    <keyword type="function" name="g_quark_from_static_string ()" link="hkl-hkl-sample-private.html#g-quark-from-static-string"/>
-    <keyword type="function" name="hkl_sample_fprintf ()" link="hkl-hkl-sample-private.html#hkl-sample-fprintf"/>
-    <keyword type="function" name="hkl_sample_reflection_free ()" link="hkl-hkl-sample-private.html#hkl-sample-reflection-free"/>
-    <keyword type="function" name="hkl_sample_reflection_new_copy ()" link="hkl-hkl-sample-private.html#hkl-sample-reflection-new-copy"/>
     <keyword type="macro" name="HKL_SOURCE_DEFAULT_WAVE_LENGTH" link="hkl-hkl-source-private.html#HKL-SOURCE-DEFAULT-WAVE-LENGTH:CAPS"/>
+    <keyword type="function" name="hkl_source_dup ()" link="hkl-hkl-source-private.html#hkl-source-dup"/>
+    <keyword type="function" name="hkl_source_free ()" link="hkl-hkl-source-private.html#hkl-source-free"/>
+    <keyword type="function" name="hkl_source_init ()" link="hkl-hkl-source-private.html#hkl-source-init"/>
+    <keyword type="function" name="hkl_source_cmp ()" link="hkl-hkl-source-private.html#hkl-source-cmp"/>
+    <keyword type="function" name="hkl_source_compute_ki ()" link="hkl-hkl-source-private.html#hkl-source-compute-ki"/>
+    <keyword type="function" name="hkl_source_get_wavelength ()" link="hkl-hkl-source-private.html#hkl-source-get-wavelength"/>
+    <keyword type="function" name="hkl_source_fprintf ()" link="hkl-hkl-source-private.html#hkl-source-fprintf"/>
     <keyword type="struct" name="struct HklSource" link="hkl-hkl-source-private.html#HklSource"/>
-    <keyword type="function" name="hkl_source_cmp ()" link="hkl-hkl-source-private.html#hkl-source-cmp"/>
-    <keyword type="function" name="hkl_source_compute_ki ()" link="hkl-hkl-source-private.html#hkl-source-compute-ki"/>
-    <keyword type="function" name="hkl_source_dup ()" link="hkl-hkl-source-private.html#hkl-source-dup"/>
-    <keyword type="function" name="hkl_source_fprintf ()" link="hkl-hkl-source-private.html#hkl-source-fprintf"/>
-    <keyword type="function" name="hkl_source_free ()" link="hkl-hkl-source-private.html#hkl-source-free"/>
-    <keyword type="function" name="hkl_source_get_wavelength ()" link="hkl-hkl-source-private.html#hkl-source-get-wavelength"/>
-    <keyword type="function" name="hkl_source_init ()" link="hkl-hkl-source-private.html#hkl-source-init"/>
+    <keyword type="macro" name="HKL_TYPE_UNIT_ENUM" link="hkl-hkl-type-builtins.html#HKL-TYPE-UNIT-ENUM:CAPS"/>
     <keyword type="macro" name="HKL_TYPE_DETECTOR_TYPE" link="hkl-hkl-type-builtins.html#HKL-TYPE-DETECTOR-TYPE:CAPS"/>
-    <keyword type="macro" name="HKL_TYPE_ENGINE_AXIS_NAMES_GET" link="hkl-hkl-type-builtins.html#HKL-TYPE-ENGINE-AXIS-NAMES-GET:CAPS"/>
     <keyword type="macro" name="HKL_TYPE_ENGINE_CAPABILITIES" link="hkl-hkl-type-builtins.html#HKL-TYPE-ENGINE-CAPABILITIES:CAPS"/>
+    <keyword type="macro" name="HKL_TYPE_ENGINE_AXIS_NAMES_GET" link="hkl-hkl-type-builtins.html#HKL-TYPE-ENGINE-AXIS-NAMES-GET:CAPS"/>
     <keyword type="macro" name="HKL_TYPE_ENGINE_DEPENDENCIES" link="hkl-hkl-type-builtins.html#HKL-TYPE-ENGINE-DEPENDENCIES:CAPS"/>
-    <keyword type="macro" name="HKL_TYPE_UNIT_ENUM" link="hkl-hkl-type-builtins.html#HKL-TYPE-UNIT-ENUM:CAPS"/>
     <keyword type="macro" name="TYPE_HKL_DETECTOR" link="hkl-hkl-types.html#TYPE-HKL-DETECTOR:CAPS"/>
     <keyword type="macro" name="TYPE_HKL_ENGINE" link="hkl-hkl-types.html#TYPE-HKL-ENGINE:CAPS"/>
     <keyword type="macro" name="TYPE_HKL_ENGINE_LIST" link="hkl-hkl-types.html#TYPE-HKL-ENGINE-LIST:CAPS"/>
@@ -368,133 +369,136 @@
     <keyword type="macro" name="TYPE_HKL_LATTICE" link="hkl-hkl-types.html#TYPE-HKL-LATTICE:CAPS"/>
     <keyword type="macro" name="TYPE_HKL_MATRIX" link="hkl-hkl-types.html#TYPE-HKL-MATRIX:CAPS"/>
     <keyword type="macro" name="TYPE_HKL_PARAMETER" link="hkl-hkl-types.html#TYPE-HKL-PARAMETER:CAPS"/>
-    <keyword type="macro" name="TYPE_HKL_SAMPLE" link="hkl-hkl-types.html#TYPE-HKL-SAMPLE:CAPS"/>
     <keyword type="macro" name="TYPE_HKL_SAMPLE_REFLECTION" link="hkl-hkl-types.html#TYPE-HKL-SAMPLE-REFLECTION:CAPS"/>
+    <keyword type="macro" name="TYPE_HKL_SAMPLE" link="hkl-hkl-types.html#TYPE-HKL-SAMPLE:CAPS"/>
     <keyword type="macro" name="TYPE_HKL_UNIT" link="hkl-hkl-types.html#TYPE-HKL-UNIT:CAPS"/>
     <keyword type="macro" name="TYPE_HKL_VECTOR" link="hkl-hkl-types.html#TYPE-HKL-VECTOR:CAPS"/>
-    <keyword type="struct" name="struct HklUnit" link="hkl-hkl-unit-private.html#HklUnit"/>
+    <keyword type="function" name="hkl_unit_dup ()" link="hkl-hkl-unit-private.html#hkl-unit-dup"/>
+    <keyword type="function" name="hkl_unit_free ()" link="hkl-hkl-unit-private.html#hkl-unit-free"/>
+    <keyword type="function" name="hkl_unit_compatible ()" link="hkl-hkl-unit-private.html#hkl-unit-compatible"/>
+    <keyword type="function" name="hkl_unit_factor ()" link="hkl-hkl-unit-private.html#hkl-unit-factor"/>
     <keyword type="enum" name="enum HklUnitType" link="hkl-hkl-unit-private.html#HklUnitType"/>
-    <keyword type="function" name="hkl_unit_compatible ()" link="hkl-hkl-unit-private.html#hkl-unit-compatible"/>
-    <keyword type="function" name="hkl_unit_dup ()" link="hkl-hkl-unit-private.html#hkl-unit-dup"/>
-    <keyword type="function" name="hkl_unit_factor ()" link="hkl-hkl-unit-private.html#hkl-unit-factor"/>
-    <keyword type="function" name="hkl_unit_free ()" link="hkl-hkl-unit-private.html#hkl-unit-free"/>
-    <keyword type="function" name="hkl_vector_add_vector ()" link="hkl-hkl-vector-private.html#hkl-vector-add-vector"/>
-    <keyword type="function" name="hkl_vector_angle ()" link="hkl-hkl-vector-private.html#hkl-vector-angle"/>
-    <keyword type="function" name="hkl_vector_cmp ()" link="hkl-hkl-vector-private.html#hkl-vector-cmp"/>
-    <keyword type="function" name="hkl_vector_div_double ()" link="hkl-hkl-vector-private.html#hkl-vector-div-double"/>
-    <keyword type="function" name="hkl_vector_dup ()" link="hkl-hkl-vector-private.html#hkl-vector-dup"/>
-    <keyword type="function" name="hkl_vector_fprintf ()" link="hkl-hkl-vector-private.html#hkl-vector-fprintf"/>
-    <keyword type="function" name="hkl_vector_free ()" link="hkl-hkl-vector-private.html#hkl-vector-free"/>
-    <keyword type="function" name="hkl_vector_init ()" link="hkl-hkl-vector-private.html#hkl-vector-init"/>
-    <keyword type="function" name="hkl_vector_is_colinear ()" link="hkl-hkl-vector-private.html#hkl-vector-is-colinear"/>
-    <keyword type="function" name="hkl_vector_is_null ()" link="hkl-hkl-vector-private.html#hkl-vector-is-null"/>
-    <keyword type="function" name="hkl_vector_is_opposite ()" link="hkl-hkl-vector-private.html#hkl-vector-is-opposite"/>
-    <keyword type="function" name="hkl_vector_minus_vector ()" link="hkl-hkl-vector-private.html#hkl-vector-minus-vector"/>
-    <keyword type="function" name="hkl_vector_norm2 ()" link="hkl-hkl-vector-private.html#hkl-vector-norm2"/>
-    <keyword type="function" name="hkl_vector_normalize ()" link="hkl-hkl-vector-private.html#hkl-vector-normalize"/>
-    <keyword type="function" name="hkl_vector_oriented_angle ()" link="hkl-hkl-vector-private.html#hkl-vector-oriented-angle"/>
-    <keyword type="function" name="hkl_vector_oriented_angle_points ()" link="hkl-hkl-vector-private.html#hkl-vector-oriented-angle-points"/>
-    <keyword type="function" name="hkl_vector_project_on_plan ()" link="hkl-hkl-vector-private.html#hkl-vector-project-on-plan"/>
-    <keyword type="function" name="hkl_vector_project_on_plan_with_point ()" link="hkl-hkl-vector-private.html#hkl-vector-project-on-plan-with-point"/>
-    <keyword type="function" name="hkl_vector_randomize ()" link="hkl-hkl-vector-private.html#hkl-vector-randomize"/>
-    <keyword type="function" name="hkl_vector_randomize_vector ()" link="hkl-hkl-vector-private.html#hkl-vector-randomize-vector"/>
-    <keyword type="function" name="hkl_vector_randomize_vector_vector ()" link="hkl-hkl-vector-private.html#hkl-vector-randomize-vector-vector"/>
-    <keyword type="function" name="hkl_vector_rotated_around_line ()" link="hkl-hkl-vector-private.html#hkl-vector-rotated-around-line"/>
-    <keyword type="function" name="hkl_vector_rotated_around_vector ()" link="hkl-hkl-vector-private.html#hkl-vector-rotated-around-vector"/>
-    <keyword type="function" name="hkl_vector_rotated_quaternion ()" link="hkl-hkl-vector-private.html#hkl-vector-rotated-quaternion"/>
-    <keyword type="function" name="hkl_vector_scalar_product ()" link="hkl-hkl-vector-private.html#hkl-vector-scalar-product"/>
-    <keyword type="function" name="hkl_vector_sum ()" link="hkl-hkl-vector-private.html#hkl-vector-sum"/>
-    <keyword type="function" name="hkl_vector_times_double ()" link="hkl-hkl-vector-private.html#hkl-vector-times-double"/>
-    <keyword type="function" name="hkl_vector_times_matrix ()" link="hkl-hkl-vector-private.html#hkl-vector-times-matrix"/>
-    <keyword type="function" name="hkl_vector_times_vector ()" link="hkl-hkl-vector-private.html#hkl-vector-times-vector"/>
-    <keyword type="function" name="hkl_vector_vectorial_product ()" link="hkl-hkl-vector-private.html#hkl-vector-vectorial-product"/>
-    <keyword type="macro" name="LIST_HEAD()" link="hkl-list.html#LIST-HEAD:CAPS"/>
+    <keyword type="struct" name="struct HklUnit" link="hkl-hkl-unit-private.html#HklUnit"/>
+    <keyword type="function" name="hkl_vector_dup ()" link="hkl-hkl-vector-private.html#hkl-vector-dup"/>
+    <keyword type="function" name="hkl_vector_free ()" link="hkl-hkl-vector-private.html#hkl-vector-free"/>
+    <keyword type="function" name="hkl_vector_init ()" link="hkl-hkl-vector-private.html#hkl-vector-init"/>
+    <keyword type="function" name="hkl_vector_fprintf ()" link="hkl-hkl-vector-private.html#hkl-vector-fprintf"/>
+    <keyword type="function" name="hkl_vector_cmp ()" link="hkl-hkl-vector-private.html#hkl-vector-cmp"/>
+    <keyword type="function" name="hkl_vector_is_opposite ()" link="hkl-hkl-vector-private.html#hkl-vector-is-opposite"/>
+    <keyword type="function" name="hkl_vector_add_vector ()" link="hkl-hkl-vector-private.html#hkl-vector-add-vector"/>
+    <keyword type="function" name="hkl_vector_minus_vector ()" link="hkl-hkl-vector-private.html#hkl-vector-minus-vector"/>
+    <keyword type="function" name="hkl_vector_div_double ()" link="hkl-hkl-vector-private.html#hkl-vector-div-double"/>
+    <keyword type="function" name="hkl_vector_times_double ()" link="hkl-hkl-vector-private.html#hkl-vector-times-double"/>
+    <keyword type="function" name="hkl_vector_times_vector ()" link="hkl-hkl-vector-private.html#hkl-vector-times-vector"/>
+    <keyword type="function" name="hkl_vector_times_matrix ()" link="hkl-hkl-vector-private.html#hkl-vector-times-matrix"/>
+    <keyword type="function" name="hkl_vector_sum ()" link="hkl-hkl-vector-private.html#hkl-vector-sum"/>
+    <keyword type="function" name="hkl_vector_scalar_product ()" link="hkl-hkl-vector-private.html#hkl-vector-scalar-product"/>
+    <keyword type="function" name="hkl_vector_vectorial_product ()" link="hkl-hkl-vector-private.html#hkl-vector-vectorial-product"/>
+    <keyword type="function" name="hkl_vector_angle ()" link="hkl-hkl-vector-private.html#hkl-vector-angle"/>
+    <keyword type="function" name="hkl_vector_oriented_angle ()" link="hkl-hkl-vector-private.html#hkl-vector-oriented-angle"/>
+    <keyword type="function" name="hkl_vector_oriented_angle_points ()" link="hkl-hkl-vector-private.html#hkl-vector-oriented-angle-points"/>
+    <keyword type="function" name="hkl_vector_norm2 ()" link="hkl-hkl-vector-private.html#hkl-vector-norm2"/>
+    <keyword type="function" name="hkl_vector_normalize ()" link="hkl-hkl-vector-private.html#hkl-vector-normalize"/>
+    <keyword type="function" name="hkl_vector_is_colinear ()" link="hkl-hkl-vector-private.html#hkl-vector-is-colinear"/>
+    <keyword type="function" name="hkl_vector_randomize ()" link="hkl-hkl-vector-private.html#hkl-vector-randomize"/>
+    <keyword type="function" name="hkl_vector_randomize_vector ()" link="hkl-hkl-vector-private.html#hkl-vector-randomize-vector"/>
+    <keyword type="function" name="hkl_vector_randomize_vector_vector ()" link="hkl-hkl-vector-private.html#hkl-vector-randomize-vector-vector"/>
+    <keyword type="function" name="hkl_vector_rotated_around_vector ()" link="hkl-hkl-vector-private.html#hkl-vector-rotated-around-vector"/>
+    <keyword type="function" name="hkl_vector_rotated_quaternion ()" link="hkl-hkl-vector-private.html#hkl-vector-rotated-quaternion"/>
+    <keyword type="function" name="hkl_vector_rotated_around_line ()" link="hkl-hkl-vector-private.html#hkl-vector-rotated-around-line"/>
+    <keyword type="function" name="hkl_vector_is_null ()" link="hkl-hkl-vector-private.html#hkl-vector-is-null"/>
+    <keyword type="function" name="hkl_vector_project_on_plan ()" link="hkl-hkl-vector-private.html#hkl-vector-project-on-plan"/>
+    <keyword type="function" name="hkl_vector_project_on_plan_with_point ()" link="hkl-hkl-vector-private.html#hkl-vector-project-on-plan-with-point"/>
+    <keyword type="function" name="list_check ()" link="hkl-list.html#list-check"/>
+    <keyword type="function" name="list_check_node ()" link="hkl-list.html#list-check-node"/>
+    <keyword type="macro" name="list_debug()" link="hkl-list.html#list-debug"/>
+    <keyword type="macro" name="list_debug_node()" link="hkl-list.html#list-debug-node"/>
     <keyword type="macro" name="LIST_HEAD_INIT()" link="hkl-list.html#LIST-HEAD-INIT:CAPS"/>
-    <keyword type="macro" name="LIST_LOC" link="hkl-list.html#LIST-LOC:CAPS"/>
+    <keyword type="macro" name="LIST_HEAD()" link="hkl-list.html#LIST-HEAD:CAPS"/>
     <keyword type="macro" name="list_add()" link="hkl-list.html#list-add"/>
-    <keyword type="macro" name="list_add_off()" link="hkl-list.html#list-add-off"/>
     <keyword type="macro" name="list_add_tail()" link="hkl-list.html#list-add-tail"/>
-    <keyword type="macro" name="list_append_list()" link="hkl-list.html#list-append-list"/>
-    <keyword type="function" name="list_check ()" link="hkl-list.html#list-check"/>
-    <keyword type="function" name="list_check_node ()" link="hkl-list.html#list-check-node"/>
-    <keyword type="macro" name="list_debug()" link="hkl-list.html#list-debug"/>
-    <keyword type="macro" name="list_debug_node()" link="hkl-list.html#list-debug-node"/>
-    <keyword type="macro" name="list_del()" link="hkl-list.html#list-del"/>
-    <keyword type="macro" name="list_del_from_off()" link="hkl-list.html#list-del-from-off"/>
-    <keyword type="macro" name="list_del_off()" link="hkl-list.html#list-del-off"/>
     <keyword type="macro" name="list_empty()" link="hkl-list.html#list-empty"/>
     <keyword type="macro" name="list_empty_nodebug()" link="hkl-list.html#list-empty-nodebug"/>
+    <keyword type="macro" name="list_del()" link="hkl-list.html#list-del"/>
     <keyword type="macro" name="list_entry()" link="hkl-list.html#list-entry"/>
-    <keyword type="macro" name="list_entry_off()" link="hkl-list.html#list-entry-off"/>
+    <keyword type="macro" name="list_top()" link="hkl-list.html#list-top"/>
+    <keyword type="macro" name="list_pop()" link="hkl-list.html#list-pop"/>
+    <keyword type="macro" name="list_tail()" link="hkl-list.html#list-tail"/>
     <keyword type="macro" name="list_for_each()" link="hkl-list.html#list-for-each"/>
-    <keyword type="macro" name="list_for_each_off()" link="hkl-list.html#list-for-each-off"/>
     <keyword type="macro" name="list_for_each_rev()" link="hkl-list.html#list-for-each-rev"/>
     <keyword type="macro" name="list_for_each_safe()" link="hkl-list.html#list-for-each-safe"/>
+    <keyword type="macro" name="list_next()" link="hkl-list.html#list-next"/>
+    <keyword type="macro" name="list_prev()" link="hkl-list.html#list-prev"/>
+    <keyword type="macro" name="list_append_list()" link="hkl-list.html#list-append-list"/>
+    <keyword type="macro" name="list_prepend_list()" link="hkl-list.html#list-prepend-list"/>
+    <keyword type="macro" name="list_for_each_off()" link="hkl-list.html#list-for-each-off"/>
     <keyword type="macro" name="list_for_each_safe_off()" link="hkl-list.html#list-for-each-safe-off"/>
+    <keyword type="macro" name="list_entry_off()" link="hkl-list.html#list-entry-off"/>
     <keyword type="macro" name="list_head_off()" link="hkl-list.html#list-head-off"/>
-    <keyword type="macro" name="list_next()" link="hkl-list.html#list-next"/>
+    <keyword type="macro" name="list_tail_off()" link="hkl-list.html#list-tail-off"/>
+    <keyword type="macro" name="list_add_off()" link="hkl-list.html#list-add-off"/>
+    <keyword type="macro" name="list_del_off()" link="hkl-list.html#list-del-off"/>
+    <keyword type="macro" name="list_del_from_off()" link="hkl-list.html#list-del-from-off"/>
     <keyword type="macro" name="list_off_()" link="hkl-list.html#list-off-"/>
     <keyword type="macro" name="list_off_var_()" link="hkl-list.html#list-off-var-"/>
-    <keyword type="macro" name="list_pop()" link="hkl-list.html#list-pop"/>
-    <keyword type="macro" name="list_prepend_list()" link="hkl-list.html#list-prepend-list"/>
-    <keyword type="macro" name="list_prev()" link="hkl-list.html#list-prev"/>
-    <keyword type="macro" name="list_tail()" link="hkl-list.html#list-tail"/>
-    <keyword type="macro" name="list_tail_off()" link="hkl-list.html#list-tail-off"/>
-    <keyword type="macro" name="list_top()" link="hkl-list.html#list-top"/>
     <keyword type="macro" name="list_typeof()" link="hkl-list.html#list-typeof"/>
-    <keyword type="function" name="close_noerr ()" link="hkl-noerr.html#close-noerr"/>
-    <keyword type="function" name="fclose_noerr ()" link="hkl-noerr.html#fclose-noerr"/>
-    <keyword type="function" name="unlink_noerr ()" link="hkl-noerr.html#unlink-noerr"/>
-    <keyword type="macro" name="PTR_VALID_ALIGNOF()" link="hkl-ptr-valid.html#PTR-VALID-ALIGNOF:CAPS"/>
-    <keyword type="function" name="ptr_valid ()" link="hkl-ptr-valid.html#ptr-valid"/>
-    <keyword type="function" name="ptr_valid_batch ()" link="hkl-ptr-valid.html#ptr-valid-batch"/>
-    <keyword type="function" name="ptr_valid_batch_end ()" link="hkl-ptr-valid.html#ptr-valid-batch-end"/>
-    <keyword type="macro" name="ptr_valid_batch_read()" link="hkl-ptr-valid.html#ptr-valid-batch-read"/>
-    <keyword type="function" name="ptr_valid_batch_start ()" link="hkl-ptr-valid.html#ptr-valid-batch-start"/>
-    <keyword type="function" name="ptr_valid_batch_string ()" link="hkl-ptr-valid.html#ptr-valid-batch-string"/>
-    <keyword type="macro" name="ptr_valid_batch_write()" link="hkl-ptr-valid.html#ptr-valid-batch-write"/>
+    <keyword type="struct" name="struct list_node" link="hkl-list.html#list-node"/>
+    <keyword type="struct" name="struct list_head" link="hkl-list.html#list-head"/>
+    <keyword type="macro" name="LIST_LOC" link="hkl-list.html#LIST-LOC:CAPS"/>
+    <keyword type="function" name="close_noerr ()" link="hkl-noerr.html#close-noerr"/>
+    <keyword type="function" name="fclose_noerr ()" link="hkl-noerr.html#fclose-noerr"/>
+    <keyword type="function" name="unlink_noerr ()" link="hkl-noerr.html#unlink-noerr"/>
     <keyword type="macro" name="ptr_valid_read()" link="hkl-ptr-valid.html#ptr-valid-read"/>
-    <keyword type="function" name="ptr_valid_string ()" link="hkl-ptr-valid.html#ptr-valid-string"/>
     <keyword type="macro" name="ptr_valid_write()" link="hkl-ptr-valid.html#ptr-valid-write"/>
+    <keyword type="function" name="ptr_valid_string ()" link="hkl-ptr-valid.html#ptr-valid-string"/>
+    <keyword type="function" name="ptr_valid ()" link="hkl-ptr-valid.html#ptr-valid"/>
+    <keyword type="function" name="ptr_valid_batch_start ()" link="hkl-ptr-valid.html#ptr-valid-batch-start"/>
+    <keyword type="macro" name="ptr_valid_batch_read()" link="hkl-ptr-valid.html#ptr-valid-batch-read"/>
+    <keyword type="macro" name="ptr_valid_batch_write()" link="hkl-ptr-valid.html#ptr-valid-batch-write"/>
+    <keyword type="function" name="ptr_valid_batch_string ()" link="hkl-ptr-valid.html#ptr-valid-batch-string"/>
+    <keyword type="function" name="ptr_valid_batch_end ()" link="hkl-ptr-valid.html#ptr-valid-batch-end"/>
+    <keyword type="macro" name="PTR_VALID_ALIGNOF()" link="hkl-ptr-valid.html#PTR-VALID-ALIGNOF:CAPS"/>
+    <keyword type="struct" name="struct ptr_valid_batch" link="hkl-ptr-valid.html#ptr-valid-batch"/>
+    <keyword type="struct" name="struct ptr_valid_map" link="hkl-ptr-valid.html#ptr-valid-map"/>
+    <keyword type="macro" name="streq()" link="hkl-str.html#streq"/>
+    <keyword type="macro" name="strstarts()" link="hkl-str.html#strstarts"/>
+    <keyword type="macro" name="stringify()" link="hkl-str.html#stringify"/>
+    <keyword type="macro" name="stringify_1()" link="hkl-str.html#stringify-1"/>
+    <keyword type="function" name="strcount ()" link="hkl-str.html#strcount"/>
     <keyword type="macro" name="STR_MAX_CHARS()" link="hkl-str.html#STR-MAX-CHARS:CAPS"/>
     <keyword type="macro" name="STR_MAX_CHARS_TCHECK_()" link="hkl-str.html#STR-MAX-CHARS-TCHECK-:CAPS"/>
-    <keyword type="function" name="isalnum ()" link="hkl-str.html#isalnum"/>
-    <keyword type="function" name="isalpha ()" link="hkl-str.html#isalpha"/>
-    <keyword type="function" name="isascii ()" link="hkl-str.html#isascii"/>
-    <keyword type="function" name="isblank ()" link="hkl-str.html#isblank"/>
-    <keyword type="function" name="iscntrl ()" link="hkl-str.html#iscntrl"/>
-    <keyword type="function" name="isdigit ()" link="hkl-str.html#isdigit"/>
-    <keyword type="function" name="isgraph ()" link="hkl-str.html#isgraph"/>
-    <keyword type="function" name="islower ()" link="hkl-str.html#islower"/>
-    <keyword type="function" name="isprint ()" link="hkl-str.html#isprint"/>
-    <keyword type="function" name="ispunct ()" link="hkl-str.html#ispunct"/>
-    <keyword type="function" name="isspace ()" link="hkl-str.html#isspace"/>
-    <keyword type="function" name="isupper ()" link="hkl-str.html#isupper"/>
-    <keyword type="function" name="isxdigit ()" link="hkl-str.html#isxdigit"/>
+    <keyword type="function" name="isalnum ()" link="hkl-str.html#isalnum"/>
+    <keyword type="function" name="isalpha ()" link="hkl-str.html#isalpha"/>
+    <keyword type="function" name="isascii ()" link="hkl-str.html#isascii"/>
+    <keyword type="function" name="isblank ()" link="hkl-str.html#isblank"/>
+    <keyword type="function" name="iscntrl ()" link="hkl-str.html#iscntrl"/>
+    <keyword type="function" name="isdigit ()" link="hkl-str.html#isdigit"/>
+    <keyword type="function" name="isgraph ()" link="hkl-str.html#isgraph"/>
+    <keyword type="function" name="islower ()" link="hkl-str.html#islower"/>
+    <keyword type="function" name="isprint ()" link="hkl-str.html#isprint"/>
+    <keyword type="function" name="ispunct ()" link="hkl-str.html#ispunct"/>
+    <keyword type="function" name="isspace ()" link="hkl-str.html#isspace"/>
+    <keyword type="function" name="isupper ()" link="hkl-str.html#isupper"/>
+    <keyword type="function" name="isxdigit ()" link="hkl-str.html#isxdigit"/>
     <keyword type="macro" name="str_check_arg_()" link="hkl-str.html#str-check-arg-"/>
+    <keyword type="macro" name="strstr()" link="hkl-str.html#strstr"/>
     <keyword type="macro" name="strchr()" link="hkl-str.html#strchr"/>
-    <keyword type="function" name="strcount ()" link="hkl-str.html#strcount"/>
-    <keyword type="macro" name="streq()" link="hkl-str.html#streq"/>
-    <keyword type="macro" name="stringify()" link="hkl-str.html#stringify"/>
-    <keyword type="macro" name="stringify_1()" link="hkl-str.html#stringify-1"/>
     <keyword type="macro" name="strrchr()" link="hkl-str.html#strrchr"/>
-    <keyword type="macro" name="strstarts()" link="hkl-str.html#strstarts"/>
-    <keyword type="macro" name="strstr()" link="hkl-str.html#strstr"/>
-    <keyword type="function" name="str_isalnum ()" link="hkl-str-debug.html#str-isalnum"/>
-    <keyword type="function" name="str_isalpha ()" link="hkl-str-debug.html#str-isalpha"/>
-    <keyword type="function" name="str_isascii ()" link="hkl-str-debug.html#str-isascii"/>
-    <keyword type="function" name="str_isblank ()" link="hkl-str-debug.html#str-isblank"/>
-    <keyword type="function" name="str_iscntrl ()" link="hkl-str-debug.html#str-iscntrl"/>
-    <keyword type="function" name="str_isdigit ()" link="hkl-str-debug.html#str-isdigit"/>
-    <keyword type="function" name="str_isgraph ()" link="hkl-str-debug.html#str-isgraph"/>
-    <keyword type="function" name="str_islower ()" link="hkl-str-debug.html#str-islower"/>
-    <keyword type="function" name="str_isprint ()" link="hkl-str-debug.html#str-isprint"/>
-    <keyword type="function" name="str_ispunct ()" link="hkl-str-debug.html#str-ispunct"/>
-    <keyword type="function" name="str_isspace ()" link="hkl-str-debug.html#str-isspace"/>
-    <keyword type="function" name="str_isupper ()" link="hkl-str-debug.html#str-isupper"/>
-    <keyword type="function" name="str_isxdigit ()" link="hkl-str-debug.html#str-isxdigit"/>
-    <keyword type="function" name="str_strchr ()" link="hkl-str-debug.html#str-strchr"/>
-    <keyword type="function" name="str_strrchr ()" link="hkl-str-debug.html#str-strrchr"/>
-    <keyword type="function" name="str_strstr ()" link="hkl-str-debug.html#str-strstr"/>
+    <keyword type="function" name="str_isalnum ()" link="hkl-str-debug.html#str-isalnum"/>
+    <keyword type="function" name="str_isalpha ()" link="hkl-str-debug.html#str-isalpha"/>
+    <keyword type="function" name="str_isascii ()" link="hkl-str-debug.html#str-isascii"/>
+    <keyword type="function" name="str_isblank ()" link="hkl-str-debug.html#str-isblank"/>
+    <keyword type="function" name="str_iscntrl ()" link="hkl-str-debug.html#str-iscntrl"/>
+    <keyword type="function" name="str_isdigit ()" link="hkl-str-debug.html#str-isdigit"/>
+    <keyword type="function" name="str_isgraph ()" link="hkl-str-debug.html#str-isgraph"/>
+    <keyword type="function" name="str_islower ()" link="hkl-str-debug.html#str-islower"/>
+    <keyword type="function" name="str_isprint ()" link="hkl-str-debug.html#str-isprint"/>
+    <keyword type="function" name="str_ispunct ()" link="hkl-str-debug.html#str-ispunct"/>
+    <keyword type="function" name="str_isspace ()" link="hkl-str-debug.html#str-isspace"/>
+    <keyword type="function" name="str_isupper ()" link="hkl-str-debug.html#str-isupper"/>
+    <keyword type="function" name="str_isxdigit ()" link="hkl-str-debug.html#str-isxdigit"/>
+    <keyword type="function" name="str_strstr ()" link="hkl-str-debug.html#str-strstr"/>
+    <keyword type="function" name="str_strchr ()" link="hkl-str-debug.html#str-strchr"/>
+    <keyword type="function" name="str_strrchr ()" link="hkl-str-debug.html#str-strrchr"/>
   </functions>
 </book>
diff --git a/Documentation/api/html/home.png b/Documentation/api/html/home.png
index 1700361..9346b33 100644
Binary files a/Documentation/api/html/home.png and b/Documentation/api/html/home.png differ
diff --git a/Documentation/api/html/index.html b/Documentation/api/html/index.html
index 9124ceb..7233baf 100644
--- a/Documentation/api/html/index.html
+++ b/Documentation/api/html/index.html
@@ -2,11 +2,11 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>hkl Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<title>hkl Reference Manual: hkl Reference Manual</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="hkl Reference Manual">
 <link rel="next" href="ch01.html" title="[Insert title here]">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -22,7 +22,7 @@
 </div>
 <hr>
 </div>
-<div class="toc"><dl>
+<div class="toc"><dl class="toc">
 <dt><span class="chapter"><a href="ch01.html">[Insert title here]</a></span></dt>
 <dd><dl>
 <dt>
@@ -139,6 +139,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/Documentation/api/html/index.sgml b/Documentation/api/html/index.sgml
index f4f4aa6..32a5fec 100644
--- a/Documentation/api/html/index.sgml
+++ b/Documentation/api/html/index.sgml
@@ -1,429 +1,475 @@
 <ONLINE href="http://[SERVER]/hkl/index.html">
 <ANCHOR id="hkl-array-size" href="hkl/hkl-array-size.html">
-<ANCHOR id="hkl-array-size.synopsis" href="hkl/hkl-array-size.html#hkl-array-size.synopsis">
+<ANCHOR id="hkl-array-size.functions" href="hkl/hkl-array-size.html#hkl-array-size.functions">
 <ANCHOR id="hkl-array-size.description" href="hkl/hkl-array-size.html#hkl-array-size.description">
-<ANCHOR id="hkl-array-size.details" href="hkl/hkl-array-size.html#hkl-array-size.details">
+<ANCHOR id="hkl-array-size.functions_details" href="hkl/hkl-array-size.html#hkl-array-size.functions_details">
 <ANCHOR id="ARRAY-SIZE:CAPS" href="hkl/hkl-array-size.html#ARRAY-SIZE:CAPS">
+<ANCHOR id="hkl-array-size.other_details" href="hkl/hkl-array-size.html#hkl-array-size.other_details">
 <ANCHOR id="hkl-autodata" href="hkl/hkl-autodata.html">
-<ANCHOR id="hkl-autodata.synopsis" href="hkl/hkl-autodata.html#hkl-autodata.synopsis">
+<ANCHOR id="hkl-autodata.functions" href="hkl/hkl-autodata.html#hkl-autodata.functions">
 <ANCHOR id="hkl-autodata.description" href="hkl/hkl-autodata.html#hkl-autodata.description">
-<ANCHOR id="hkl-autodata.details" href="hkl/hkl-autodata.html#hkl-autodata.details">
-<ANCHOR id="AUTODATA:CAPS" href="hkl/hkl-autodata.html#AUTODATA:CAPS">
-<ANCHOR id="AUTODATA-MAGIC:CAPS" href="hkl/hkl-autodata.html#AUTODATA-MAGIC:CAPS">
+<ANCHOR id="hkl-autodata.functions_details" href="hkl/hkl-autodata.html#hkl-autodata.functions_details">
 <ANCHOR id="AUTODATA-TYPE:CAPS" href="hkl/hkl-autodata.html#AUTODATA-TYPE:CAPS">
-<ANCHOR id="AUTODATA-VAR-:CAPS" href="hkl/hkl-autodata.html#AUTODATA-VAR-:CAPS">
-<ANCHOR id="AUTODATA-VAR--:CAPS" href="hkl/hkl-autodata.html#AUTODATA-VAR--:CAPS">
-<ANCHOR id="autodata-free" href="hkl/hkl-autodata.html#autodata-free">
+<ANCHOR id="AUTODATA:CAPS" href="hkl/hkl-autodata.html#AUTODATA:CAPS">
 <ANCHOR id="autodata-get" href="hkl/hkl-autodata.html#autodata-get">
+<ANCHOR id="autodata-free" href="hkl/hkl-autodata.html#autodata-free">
+<ANCHOR id="AUTODATA-VAR--:CAPS" href="hkl/hkl-autodata.html#AUTODATA-VAR--:CAPS">
+<ANCHOR id="AUTODATA-VAR-:CAPS" href="hkl/hkl-autodata.html#AUTODATA-VAR-:CAPS">
 <ANCHOR id="autodata-get-section" href="hkl/hkl-autodata.html#autodata-get-section">
+<ANCHOR id="AUTODATA-MAGIC:CAPS" href="hkl/hkl-autodata.html#AUTODATA-MAGIC:CAPS">
 <ANCHOR id="autodata-make-table" href="hkl/hkl-autodata.html#autodata-make-table">
+<ANCHOR id="hkl-autodata.other_details" href="hkl/hkl-autodata.html#hkl-autodata.other_details">
 <ANCHOR id="hkl-build-assert" href="hkl/hkl-build-assert.html">
-<ANCHOR id="hkl-build-assert.synopsis" href="hkl/hkl-build-assert.html#hkl-build-assert.synopsis">
+<ANCHOR id="hkl-build-assert.functions" href="hkl/hkl-build-assert.html#hkl-build-assert.functions">
 <ANCHOR id="hkl-build-assert.description" href="hkl/hkl-build-assert.html#hkl-build-assert.description">
-<ANCHOR id="hkl-build-assert.details" href="hkl/hkl-build-assert.html#hkl-build-assert.details">
+<ANCHOR id="hkl-build-assert.functions_details" href="hkl/hkl-build-assert.html#hkl-build-assert.functions_details">
 <ANCHOR id="BUILD-ASSERT:CAPS" href="hkl/hkl-build-assert.html#BUILD-ASSERT:CAPS">
 <ANCHOR id="BUILD-ASSERT-OR-ZERO:CAPS" href="hkl/hkl-build-assert.html#BUILD-ASSERT-OR-ZERO:CAPS">
+<ANCHOR id="hkl-build-assert.other_details" href="hkl/hkl-build-assert.html#hkl-build-assert.other_details">
 <ANCHOR id="hkl-check-type" href="hkl/hkl-check-type.html">
-<ANCHOR id="hkl-check-type.synopsis" href="hkl/hkl-check-type.html#hkl-check-type.synopsis">
+<ANCHOR id="hkl-check-type.functions" href="hkl/hkl-check-type.html#hkl-check-type.functions">
 <ANCHOR id="hkl-check-type.description" href="hkl/hkl-check-type.html#hkl-check-type.description">
-<ANCHOR id="hkl-check-type.details" href="hkl/hkl-check-type.html#hkl-check-type.details">
+<ANCHOR id="hkl-check-type.functions_details" href="hkl/hkl-check-type.html#hkl-check-type.functions_details">
 <ANCHOR id="check-type" href="hkl/hkl-check-type.html#check-type">
 <ANCHOR id="check-types-match" href="hkl/hkl-check-type.html#check-types-match">
+<ANCHOR id="hkl-check-type.other_details" href="hkl/hkl-check-type.html#hkl-check-type.other_details">
 <ANCHOR id="hkl-compiler" href="hkl/hkl-compiler.html">
-<ANCHOR id="hkl-compiler.synopsis" href="hkl/hkl-compiler.html#hkl-compiler.synopsis">
+<ANCHOR id="hkl-compiler.functions" href="hkl/hkl-compiler.html#hkl-compiler.functions">
+<ANCHOR id="hkl-compiler.other" href="hkl/hkl-compiler.html#hkl-compiler.other">
 <ANCHOR id="hkl-compiler.description" href="hkl/hkl-compiler.html#hkl-compiler.description">
-<ANCHOR id="hkl-compiler.details" href="hkl/hkl-compiler.html#hkl-compiler.details">
-<ANCHOR id="COLD:CAPS" href="hkl/hkl-compiler.html#COLD:CAPS">
-<ANCHOR id="CONST-FUNCTION:CAPS" href="hkl/hkl-compiler.html#CONST-FUNCTION:CAPS">
+<ANCHOR id="hkl-compiler.functions_details" href="hkl/hkl-compiler.html#hkl-compiler.functions_details">
+<ANCHOR id="PRINTF-FMT:CAPS" href="hkl/hkl-compiler.html#PRINTF-FMT:CAPS">
 <ANCHOR id="IS-COMPILE-CONSTANT:CAPS" href="hkl/hkl-compiler.html#IS-COMPILE-CONSTANT:CAPS">
-<ANCHOR id="NEEDED:CAPS" href="hkl/hkl-compiler.html#NEEDED:CAPS">
+<ANCHOR id="hkl-compiler.other_details" href="hkl/hkl-compiler.html#hkl-compiler.other_details">
+<ANCHOR id="COLD:CAPS" href="hkl/hkl-compiler.html#COLD:CAPS">
 <ANCHOR id="NORETURN:CAPS" href="hkl/hkl-compiler.html#NORETURN:CAPS">
-<ANCHOR id="PRINTF-FMT:CAPS" href="hkl/hkl-compiler.html#PRINTF-FMT:CAPS">
+<ANCHOR id="CONST-FUNCTION:CAPS" href="hkl/hkl-compiler.html#CONST-FUNCTION:CAPS">
 <ANCHOR id="PURE-FUNCTION:CAPS" href="hkl/hkl-compiler.html#PURE-FUNCTION:CAPS">
 <ANCHOR id="UNNEEDED:CAPS" href="hkl/hkl-compiler.html#UNNEEDED:CAPS">
+<ANCHOR id="NEEDED:CAPS" href="hkl/hkl-compiler.html#NEEDED:CAPS">
 <ANCHOR id="UNUSED:CAPS" href="hkl/hkl-compiler.html#UNUSED:CAPS">
 <ANCHOR id="WARN-UNUSED-RESULT:CAPS" href="hkl/hkl-compiler.html#WARN-UNUSED-RESULT:CAPS">
 <ANCHOR id="hkl-container-of" href="hkl/hkl-container-of.html">
-<ANCHOR id="hkl-container-of.synopsis" href="hkl/hkl-container-of.html#hkl-container-of.synopsis">
+<ANCHOR id="hkl-container-of.functions" href="hkl/hkl-container-of.html#hkl-container-of.functions">
 <ANCHOR id="hkl-container-of.description" href="hkl/hkl-container-of.html#hkl-container-of.description">
-<ANCHOR id="hkl-container-of.details" href="hkl/hkl-container-of.html#hkl-container-of.details">
+<ANCHOR id="hkl-container-of.functions_details" href="hkl/hkl-container-of.html#hkl-container-of.functions_details">
 <ANCHOR id="container-of" href="hkl/hkl-container-of.html#container-of">
-<ANCHOR id="container-of-var" href="hkl/hkl-container-of.html#container-of-var">
 <ANCHOR id="container-off" href="hkl/hkl-container-of.html#container-off">
+<ANCHOR id="container-of-var" href="hkl/hkl-container-of.html#container-of-var">
 <ANCHOR id="container-off-var" href="hkl/hkl-container-of.html#container-off-var">
+<ANCHOR id="hkl-container-of.other_details" href="hkl/hkl-container-of.html#hkl-container-of.other_details">
 <ANCHOR id="hkl-darray" href="hkl/hkl-darray.html">
-<ANCHOR id="hkl-darray.synopsis" href="hkl/hkl-darray.html#hkl-darray.synopsis">
+<ANCHOR id="hkl-darray.functions" href="hkl/hkl-darray.html#hkl-darray.functions">
+<ANCHOR id="hkl-darray.other" href="hkl/hkl-darray.html#hkl-darray.other">
 <ANCHOR id="hkl-darray.description" href="hkl/hkl-darray.html#hkl-darray.description">
-<ANCHOR id="hkl-darray.details" href="hkl/hkl-darray.html#hkl-darray.details">
+<ANCHOR id="hkl-darray.functions_details" href="hkl/hkl-darray.html#hkl-darray.functions_details">
 <ANCHOR id="darray" href="hkl/hkl-darray.html#darray">
+<ANCHOR id="darray-new" href="hkl/hkl-darray.html#darray-new">
+<ANCHOR id="darray-init" href="hkl/hkl-darray.html#darray-init">
+<ANCHOR id="darray-free" href="hkl/hkl-darray.html#darray-free">
+<ANCHOR id="darray-item" href="hkl/hkl-darray.html#darray-item">
+<ANCHOR id="darray-size" href="hkl/hkl-darray.html#darray-size">
 <ANCHOR id="darray-alloc" href="hkl/hkl-darray.html#darray-alloc">
+<ANCHOR id="darray-empty" href="hkl/hkl-darray.html#darray-empty">
 <ANCHOR id="darray-append" href="hkl/hkl-darray.html#darray-append">
+<ANCHOR id="darray-prepend" href="hkl/hkl-darray.html#darray-prepend">
+<ANCHOR id="darray-push" href="hkl/hkl-darray.html#darray-push">
 <ANCHOR id="darray-append-items" href="hkl/hkl-darray.html#darray-append-items">
+<ANCHOR id="darray-prepend-items" href="hkl/hkl-darray.html#darray-prepend-items">
 <ANCHOR id="darray-append-items-nullterminate" href="hkl/hkl-darray.html#darray-append-items-nullterminate">
-<ANCHOR id="darray-append-lit" href="hkl/hkl-darray.html#darray-append-lit">
-<ANCHOR id="darray-append-string" href="hkl/hkl-darray.html#darray-append-string">
+<ANCHOR id="darray-prepend-items-nullterminate" href="hkl/hkl-darray.html#darray-prepend-items-nullterminate">
 <ANCHOR id="darray-appends" href="hkl/hkl-darray.html#darray-appends">
+<ANCHOR id="darray-prepends" href="hkl/hkl-darray.html#darray-prepends">
 <ANCHOR id="darray-appends-t" href="hkl/hkl-darray.html#darray-appends-t">
-<ANCHOR id="darray-char" href="hkl/hkl-darray.html#darray-char">
-<ANCHOR id="darray-empty" href="hkl/hkl-darray.html#darray-empty">
-<ANCHOR id="darray-foreach" href="hkl/hkl-darray.html#darray-foreach">
-<ANCHOR id="darray-foreach-reverse" href="hkl/hkl-darray.html#darray-foreach-reverse">
-<ANCHOR id="darray-free" href="hkl/hkl-darray.html#darray-free">
-<ANCHOR id="darray-from-c" href="hkl/hkl-darray.html#darray-from-c">
-<ANCHOR id="darray-from-items" href="hkl/hkl-darray.html#darray-from-items">
-<ANCHOR id="darray-from-lit" href="hkl/hkl-darray.html#darray-from-lit">
-<ANCHOR id="darray-from-string" href="hkl/hkl-darray.html#darray-from-string">
-<ANCHOR id="darray-growalloc" href="hkl/hkl-darray.html#darray-growalloc">
-<ANCHOR id="darray-init" href="hkl/hkl-darray.html#darray-init">
-<ANCHOR id="darray-int" href="hkl/hkl-darray.html#darray-int">
-<ANCHOR id="darray-item" href="hkl/hkl-darray.html#darray-item">
-<ANCHOR id="darray-long" href="hkl/hkl-darray.html#darray-long">
-<ANCHOR id="darray-make-room" href="hkl/hkl-darray.html#darray-make-room">
-<ANCHOR id="darray-new" href="hkl/hkl-darray.html#darray-new">
+<ANCHOR id="darray-prepends-t" href="hkl/hkl-darray.html#darray-prepends-t">
 <ANCHOR id="darray-pop" href="hkl/hkl-darray.html#darray-pop">
 <ANCHOR id="darray-pop-check" href="hkl/hkl-darray.html#darray-pop-check">
-<ANCHOR id="darray-prepend" href="hkl/hkl-darray.html#darray-prepend">
-<ANCHOR id="darray-prepend-items" href="hkl/hkl-darray.html#darray-prepend-items">
-<ANCHOR id="darray-prepend-items-nullterminate" href="hkl/hkl-darray.html#darray-prepend-items-nullterminate">
-<ANCHOR id="darray-prepend-lit" href="hkl/hkl-darray.html#darray-prepend-lit">
+<ANCHOR id="darray-from-items" href="hkl/hkl-darray.html#darray-from-items">
+<ANCHOR id="darray-from-c" href="hkl/hkl-darray.html#darray-from-c">
+<ANCHOR id="darray-append-string" href="hkl/hkl-darray.html#darray-append-string">
+<ANCHOR id="darray-append-lit" href="hkl/hkl-darray.html#darray-append-lit">
 <ANCHOR id="darray-prepend-string" href="hkl/hkl-darray.html#darray-prepend-string">
-<ANCHOR id="darray-prepends" href="hkl/hkl-darray.html#darray-prepends">
-<ANCHOR id="darray-prepends-t" href="hkl/hkl-darray.html#darray-prepends-t">
-<ANCHOR id="darray-push" href="hkl/hkl-darray.html#darray-push">
-<ANCHOR id="darray-realloc" href="hkl/hkl-darray.html#darray-realloc">
+<ANCHOR id="darray-prepend-lit" href="hkl/hkl-darray.html#darray-prepend-lit">
+<ANCHOR id="darray-from-string" href="hkl/hkl-darray.html#darray-from-string">
+<ANCHOR id="darray-from-lit" href="hkl/hkl-darray.html#darray-from-lit">
 <ANCHOR id="darray-resize" href="hkl/hkl-darray.html#darray-resize">
 <ANCHOR id="darray-resize0" href="hkl/hkl-darray.html#darray-resize0">
+<ANCHOR id="darray-realloc" href="hkl/hkl-darray.html#darray-realloc">
+<ANCHOR id="darray-growalloc" href="hkl/hkl-darray.html#darray-growalloc">
+<ANCHOR id="darray-make-room" href="hkl/hkl-darray.html#darray-make-room">
+<ANCHOR id="darray-foreach" href="hkl/hkl-darray.html#darray-foreach">
+<ANCHOR id="darray-foreach-reverse" href="hkl/hkl-darray.html#darray-foreach-reverse">
+<ANCHOR id="hkl-darray.other_details" href="hkl/hkl-darray.html#hkl-darray.other_details">
+<ANCHOR id="darray-char" href="hkl/hkl-darray.html#darray-char">
 <ANCHOR id="darray-schar" href="hkl/hkl-darray.html#darray-schar">
-<ANCHOR id="darray-short" href="hkl/hkl-darray.html#darray-short">
-<ANCHOR id="darray-size" href="hkl/hkl-darray.html#darray-size">
 <ANCHOR id="darray-uchar" href="hkl/hkl-darray.html#darray-uchar">
+<ANCHOR id="darray-short" href="hkl/hkl-darray.html#darray-short">
+<ANCHOR id="darray-int" href="hkl/hkl-darray.html#darray-int">
+<ANCHOR id="darray-long" href="hkl/hkl-darray.html#darray-long">
+<ANCHOR id="darray-ushort" href="hkl/hkl-darray.html#darray-ushort">
 <ANCHOR id="darray-uint" href="hkl/hkl-darray.html#darray-uint">
 <ANCHOR id="darray-ulong" href="hkl/hkl-darray.html#darray-ulong">
-<ANCHOR id="darray-ushort" href="hkl/hkl-darray.html#darray-ushort">
 <ANCHOR id="hkl-hkl" href="hkl/hkl-hkl.html">
-<ANCHOR id="hkl-hkl.synopsis" href="hkl/hkl-hkl.html#hkl-hkl.synopsis">
+<ANCHOR id="hkl-hkl.functions" href="hkl/hkl-hkl.html#hkl-hkl.functions">
+<ANCHOR id="hkl-hkl.other" href="hkl/hkl-hkl.html#hkl-hkl.other">
 <ANCHOR id="hkl-hkl.description" href="hkl/hkl-hkl.html#hkl-hkl.description">
-<ANCHOR id="hkl-hkl.details" href="hkl/hkl-hkl.html#hkl-hkl.details">
-<ANCHOR id="HKLAPI:CAPS" href="hkl/hkl-hkl.html#HKLAPI:CAPS">
-<ANCHOR id="HKL-ARG-NONNULL:CAPS" href="hkl/hkl-hkl.html#HKL-ARG-NONNULL:CAPS">
-<ANCHOR id="HKL-DEGTORAD:CAPS" href="hkl/hkl-hkl.html#HKL-DEGTORAD:CAPS">
-<ANCHOR id="HKL-DEPRECATED:CAPS" href="hkl/hkl-hkl.html#HKL-DEPRECATED:CAPS">
+<ANCHOR id="hkl-hkl.functions_details" href="hkl/hkl-hkl.html#hkl-hkl.functions_details">
 <ANCHOR id="HKL-DEPRECATED-FOR:CAPS" href="hkl/hkl-hkl.html#HKL-DEPRECATED-FOR:CAPS">
-<ANCHOR id="HKL-EPSILON:CAPS" href="hkl/hkl-hkl.html#HKL-EPSILON:CAPS">
-<ANCHOR id="HKL-GEOMETRY-LIST-FOREACH:CAPS" href="hkl/hkl-hkl.html#HKL-GEOMETRY-LIST-FOREACH:CAPS">
+<ANCHOR id="HKL-DEGTORAD:CAPS" href="hkl/hkl-hkl.html#HKL-DEGTORAD:CAPS">
 <ANCHOR id="HKL-RADTODEG:CAPS" href="hkl/hkl-hkl.html#HKL-RADTODEG:CAPS">
-<ANCHOR id="HKL-SAMPLE-REFLECTIONS-FOREACH:CAPS" href="hkl/hkl-hkl.html#HKL-SAMPLE-REFLECTIONS-FOREACH:CAPS">
 <ANCHOR id="HKL-TAU:CAPS" href="hkl/hkl-hkl.html#HKL-TAU:CAPS">
+<ANCHOR id="HKL-ARG-NONNULL:CAPS" href="hkl/hkl-hkl.html#HKL-ARG-NONNULL:CAPS">
+<ANCHOR id="HKL-GEOMETRY-LIST-FOREACH:CAPS" href="hkl/hkl-hkl.html#HKL-GEOMETRY-LIST-FOREACH:CAPS">
+<ANCHOR id="HKL-SAMPLE-REFLECTIONS-FOREACH:CAPS" href="hkl/hkl-hkl.html#HKL-SAMPLE-REFLECTIONS-FOREACH:CAPS">
+<ANCHOR id="hkl-hkl.other_details" href="hkl/hkl-hkl.html#hkl-hkl.other_details">
+<ANCHOR id="HKL-DEPRECATED:CAPS" href="hkl/hkl-hkl.html#HKL-DEPRECATED:CAPS">
 <ANCHOR id="HKL-TINY:CAPS" href="hkl/hkl-hkl.html#HKL-TINY:CAPS">
+<ANCHOR id="HKL-EPSILON:CAPS" href="hkl/hkl-hkl.html#HKL-EPSILON:CAPS">
+<ANCHOR id="HKLAPI:CAPS" href="hkl/hkl-hkl.html#HKLAPI:CAPS">
 <ANCHOR id="HKL-WARN-UNUSED-RESULT:CAPS" href="hkl/hkl-hkl.html#HKL-WARN-UNUSED-RESULT:CAPS">
-<ANCHOR id="HklDetector" href="hkl/hkl-hkl.html#HklDetector">
+<ANCHOR id="HklVector" href="hkl/hkl-hkl.html#HklVector">
+<ANCHOR id="HklQuaternion" href="hkl/hkl-hkl.html#HklQuaternion">
+<ANCHOR id="darray-string" href="hkl/hkl-hkl.html#darray-string">
+<ANCHOR id="HklUnitEnum" href="hkl/hkl-hkl.html#HklUnitEnum">
 <ANCHOR id="HklDetectorType" href="hkl/hkl-hkl.html#HklDetectorType">
-<ANCHOR id="HklEngine" href="hkl/hkl-hkl.html#HklEngine">
-<ANCHOR id="HklEngineAxisNamesGet" href="hkl/hkl-hkl.html#HklEngineAxisNamesGet">
+<ANCHOR id="darray-engine" href="hkl/hkl-hkl.html#darray-engine">
 <ANCHOR id="HklEngineCapabilities" href="hkl/hkl-hkl.html#HklEngineCapabilities">
+<ANCHOR id="HklEngineAxisNamesGet" href="hkl/hkl-hkl.html#HklEngineAxisNamesGet">
 <ANCHOR id="HklEngineDependencies" href="hkl/hkl-hkl.html#HklEngineDependencies">
-<ANCHOR id="HklEngineList" href="hkl/hkl-hkl.html#HklEngineList">
+<ANCHOR id="HklGeometryListItem" href="hkl/hkl-hkl.html#HklGeometryListItem">
 <ANCHOR id="HklFactory" href="hkl/hkl-hkl.html#HklFactory">
 <ANCHOR id="HklGeometry" href="hkl/hkl-hkl.html#HklGeometry">
-<ANCHOR id="HklGeometryList" href="hkl/hkl-hkl.html#HklGeometryList">
-<ANCHOR id="HklGeometryListItem" href="hkl/hkl-hkl.html#HklGeometryListItem">
-<ANCHOR id="HklLattice" href="hkl/hkl-hkl.html#HklLattice">
-<ANCHOR id="HklMatrix" href="hkl/hkl-hkl.html#HklMatrix">
 <ANCHOR id="HklParameter" href="hkl/hkl-hkl.html#HklParameter">
-<ANCHOR id="HklQuaternion" href="hkl/hkl-hkl.html#HklQuaternion">
-<ANCHOR id="HklSample" href="hkl/hkl-hkl.html#HklSample">
+<ANCHOR id="HklEngine" href="hkl/hkl-hkl.html#HklEngine">
+<ANCHOR id="HklMatrix" href="hkl/hkl-hkl.html#HklMatrix">
 <ANCHOR id="HklSampleReflection" href="hkl/hkl-hkl.html#HklSampleReflection">
-<ANCHOR id="HklUnitEnum" href="hkl/hkl-hkl.html#HklUnitEnum">
-<ANCHOR id="HklVector" href="hkl/hkl-hkl.html#HklVector">
-<ANCHOR id="darray-engine" href="hkl/hkl-hkl.html#darray-engine">
-<ANCHOR id="darray-string" href="hkl/hkl-hkl.html#darray-string">
+<ANCHOR id="HklSample" href="hkl/hkl-hkl.html#HklSample">
+<ANCHOR id="HklEngineList" href="hkl/hkl-hkl.html#HklEngineList">
+<ANCHOR id="HklDetector" href="hkl/hkl-hkl.html#HklDetector">
+<ANCHOR id="HklLattice" href="hkl/hkl-hkl.html#HklLattice">
+<ANCHOR id="HklGeometryList" href="hkl/hkl-hkl.html#HklGeometryList">
 <ANCHOR id="hkl-hkl-axis-private" href="hkl/hkl-hkl-axis-private.html">
-<ANCHOR id="hkl-hkl-axis-private.synopsis" href="hkl/hkl-hkl-axis-private.html#hkl-hkl-axis-private.synopsis">
+<ANCHOR id="hkl-hkl-axis-private.functions" href="hkl/hkl-hkl-axis-private.html#hkl-hkl-axis-private.functions">
+<ANCHOR id="hkl-hkl-axis-private.other" href="hkl/hkl-hkl-axis-private.html#hkl-hkl-axis-private.other">
 <ANCHOR id="hkl-hkl-axis-private.description" href="hkl/hkl-hkl-axis-private.html#hkl-hkl-axis-private.description">
-<ANCHOR id="hkl-hkl-axis-private.details" href="hkl/hkl-hkl-axis-private.html#hkl-hkl-axis-private.details">
-<ANCHOR id="HklAxis" href="hkl/hkl-hkl-axis-private.html#HklAxis">
+<ANCHOR id="hkl-hkl-axis-private.functions_details" href="hkl/hkl-hkl-axis-private.html#hkl-hkl-axis-private.functions_details">
 <ANCHOR id="hkl-parameter-new-axis" href="hkl/hkl-hkl-axis-private.html#hkl-parameter-new-axis">
+<ANCHOR id="hkl-hkl-axis-private.other_details" href="hkl/hkl-hkl-axis-private.html#hkl-hkl-axis-private.other_details">
+<ANCHOR id="HklAxis" href="hkl/hkl-hkl-axis-private.html#HklAxis">
 <ANCHOR id="hkl-hkl-detector-private" href="hkl/hkl-hkl-detector-private.html">
-<ANCHOR id="hkl-hkl-detector-private.synopsis" href="hkl/hkl-hkl-detector-private.html#hkl-hkl-detector-private.synopsis">
+<ANCHOR id="hkl-hkl-detector-private.functions" href="hkl/hkl-hkl-detector-private.html#hkl-hkl-detector-private.functions">
+<ANCHOR id="hkl-hkl-detector-private.other" href="hkl/hkl-hkl-detector-private.html#hkl-hkl-detector-private.other">
 <ANCHOR id="hkl-hkl-detector-private.description" href="hkl/hkl-hkl-detector-private.html#hkl-hkl-detector-private.description">
-<ANCHOR id="hkl-hkl-detector-private.details" href="hkl/hkl-hkl-detector-private.html#hkl-hkl-detector-private.details">
-<ANCHOR id="HklDetector" href="hkl/hkl-hkl-detector-private.html#HklDetector">
+<ANCHOR id="hkl-hkl-detector-private.functions_details" href="hkl/hkl-hkl-detector-private.html#hkl-hkl-detector-private.functions_details">
+<ANCHOR id="hkl-detector-new" href="hkl/hkl-hkl-detector-private.html#hkl-detector-new">
 <ANCHOR id="hkl-detector-attach-to-holder" href="hkl/hkl-hkl-detector-private.html#hkl-detector-attach-to-holder">
 <ANCHOR id="hkl-detector-compute-kf" href="hkl/hkl-hkl-detector-private.html#hkl-detector-compute-kf">
-<ANCHOR id="hkl-detector-new" href="hkl/hkl-hkl-detector-private.html#hkl-detector-new">
+<ANCHOR id="hkl-hkl-detector-private.other_details" href="hkl/hkl-hkl-detector-private.html#hkl-hkl-detector-private.other_details">
+<ANCHOR id="HklDetector" href="hkl/hkl-hkl-detector-private.html#HklDetector">
 <ANCHOR id="hkl-hkl-factory-private" href="hkl/hkl-hkl-factory-private.html">
-<ANCHOR id="hkl-hkl-factory-private.synopsis" href="hkl/hkl-hkl-factory-private.html#hkl-hkl-factory-private.synopsis">
+<ANCHOR id="hkl-hkl-factory-private.functions" href="hkl/hkl-hkl-factory-private.html#hkl-hkl-factory-private.functions">
+<ANCHOR id="hkl-hkl-factory-private.other" href="hkl/hkl-hkl-factory-private.html#hkl-hkl-factory-private.other">
 <ANCHOR id="hkl-hkl-factory-private.description" href="hkl/hkl-hkl-factory-private.html#hkl-hkl-factory-private.description">
-<ANCHOR id="hkl-hkl-factory-private.details" href="hkl/hkl-hkl-factory-private.html#hkl-hkl-factory-private.details">
-<ANCHOR id="HklFactory" href="hkl/hkl-hkl-factory-private.html#HklFactory">
-<ANCHOR id="HklFactoryEngineListFunction" href="hkl/hkl-hkl-factory-private.html#HklFactoryEngineListFunction">
+<ANCHOR id="hkl-hkl-factory-private.functions_details" href="hkl/hkl-hkl-factory-private.html#hkl-hkl-factory-private.functions_details">
 <ANCHOR id="HklFactoryGeometryFunction" href="hkl/hkl-hkl-factory-private.html#HklFactoryGeometryFunction">
+<ANCHOR id="HklFactoryEngineListFunction" href="hkl/hkl-hkl-factory-private.html#HklFactoryEngineListFunction">
 <ANCHOR id="REGISTER-DIFFRACTOMETER:CAPS" href="hkl/hkl-hkl-factory-private.html#REGISTER-DIFFRACTOMETER:CAPS">
+<ANCHOR id="hkl-hkl-factory-private.other_details" href="hkl/hkl-hkl-factory-private.html#hkl-hkl-factory-private.other_details">
+<ANCHOR id="HklFactory" href="hkl/hkl-hkl-factory-private.html#HklFactory">
 <ANCHOR id="hkl-hkl-geometry-private" href="hkl/hkl-hkl-geometry-private.html">
-<ANCHOR id="hkl-hkl-geometry-private.synopsis" href="hkl/hkl-hkl-geometry-private.html#hkl-hkl-geometry-private.synopsis">
+<ANCHOR id="hkl-hkl-geometry-private.functions" href="hkl/hkl-hkl-geometry-private.html#hkl-hkl-geometry-private.functions">
+<ANCHOR id="hkl-hkl-geometry-private.other" href="hkl/hkl-hkl-geometry-private.html#hkl-hkl-geometry-private.other">
 <ANCHOR id="hkl-hkl-geometry-private.description" href="hkl/hkl-hkl-geometry-private.html#hkl-hkl-geometry-private.description">
-<ANCHOR id="hkl-hkl-geometry-private.details" href="hkl/hkl-hkl-geometry-private.html#hkl-hkl-geometry-private.details">
-<ANCHOR id="HKL-GEOMETRY-ERROR:CAPS" href="hkl/hkl-hkl-geometry-private.html#HKL-GEOMETRY-ERROR:CAPS">
-<ANCHOR id="HklGeometry" href="hkl/hkl-hkl-geometry-private.html#HklGeometry">
-<ANCHOR id="HklGeometryError" href="hkl/hkl-hkl-geometry-private.html#HklGeometryError">
-<ANCHOR id="HklGeometryList" href="hkl/hkl-hkl-geometry-private.html#HklGeometryList">
-<ANCHOR id="HklGeometryListItem" href="hkl/hkl-hkl-geometry-private.html#HklGeometryListItem">
+<ANCHOR id="hkl-hkl-geometry-private.functions_details" href="hkl/hkl-hkl-geometry-private.html#hkl-hkl-geometry-private.functions_details">
 <ANCHOR id="HklGeometryListMultiplyFunction" href="hkl/hkl-hkl-geometry-private.html#HklGeometryListMultiplyFunction">
-<ANCHOR id="HklHolder" href="hkl/hkl-hkl-geometry-private.html#HklHolder">
-<ANCHOR id="darray-holder" href="hkl/hkl-hkl-geometry-private.html#darray-holder">
 <ANCHOR id="g-quark-from-static-string" href="hkl/hkl-hkl-geometry-private.html#g-quark-from-static-string">
+<ANCHOR id="hkl-holder-add-rotation-axis" href="hkl/hkl-hkl-geometry-private.html#hkl-holder-add-rotation-axis">
+<ANCHOR id="hkl-geometry-new" href="hkl/hkl-hkl-geometry-private.html#hkl-geometry-new">
+<ANCHOR id="hkl-geometry-init-geometry" href="hkl/hkl-hkl-geometry-private.html#hkl-geometry-init-geometry">
 <ANCHOR id="hkl-geometry-add-holder" href="hkl/hkl-hkl-geometry-private.html#hkl-geometry-add-holder">
-<ANCHOR id="hkl-geometry-closest-from-geometry-with-range" href="hkl/hkl-hkl-geometry-private.html#hkl-geometry-closest-from-geometry-with-range">
+<ANCHOR id="hkl-geometry-update" href="hkl/hkl-hkl-geometry-private.html#hkl-geometry-update">
+<ANCHOR id="hkl-geometry-get-axis-idx-by-name" href="hkl/hkl-hkl-geometry-private.html#hkl-geometry-get-axis-idx-by-name">
+<ANCHOR id="hkl-geometry-get-axis-by-name" href="hkl/hkl-hkl-geometry-private.html#hkl-geometry-get-axis-by-name">
 <ANCHOR id="hkl-geometry-distance" href="hkl/hkl-hkl-geometry-private.html#hkl-geometry-distance">
 <ANCHOR id="hkl-geometry-distance-orthodromic" href="hkl/hkl-hkl-geometry-private.html#hkl-geometry-distance-orthodromic">
-<ANCHOR id="hkl-geometry-get-axis-by-name" href="hkl/hkl-hkl-geometry-private.html#hkl-geometry-get-axis-by-name">
-<ANCHOR id="hkl-geometry-get-axis-idx-by-name" href="hkl/hkl-hkl-geometry-private.html#hkl-geometry-get-axis-idx-by-name">
-<ANCHOR id="hkl-geometry-init-geometry" href="hkl/hkl-hkl-geometry-private.html#hkl-geometry-init-geometry">
+<ANCHOR id="hkl-geometry-closest-from-geometry-with-range" href="hkl/hkl-hkl-geometry-private.html#hkl-geometry-closest-from-geometry-with-range">
 <ANCHOR id="hkl-geometry-is-valid" href="hkl/hkl-hkl-geometry-private.html#hkl-geometry-is-valid">
+<ANCHOR id="hkl-geometry-list-new" href="hkl/hkl-hkl-geometry-private.html#hkl-geometry-list-new">
+<ANCHOR id="hkl-geometry-list-new-copy" href="hkl/hkl-hkl-geometry-private.html#hkl-geometry-list-new-copy">
 <ANCHOR id="hkl-geometry-list-add" href="hkl/hkl-hkl-geometry-private.html#hkl-geometry-list-add">
+<ANCHOR id="hkl-geometry-list-reset" href="hkl/hkl-hkl-geometry-private.html#hkl-geometry-list-reset">
+<ANCHOR id="hkl-geometry-list-sort" href="hkl/hkl-hkl-geometry-private.html#hkl-geometry-list-sort">
 <ANCHOR id="hkl-geometry-list-fprintf" href="hkl/hkl-hkl-geometry-private.html#hkl-geometry-list-fprintf">
-<ANCHOR id="hkl-geometry-list-item-free" href="hkl/hkl-hkl-geometry-private.html#hkl-geometry-list-item-free">
-<ANCHOR id="hkl-geometry-list-item-new" href="hkl/hkl-hkl-geometry-private.html#hkl-geometry-list-item-new">
-<ANCHOR id="hkl-geometry-list-item-new-copy" href="hkl/hkl-hkl-geometry-private.html#hkl-geometry-list-item-new-copy">
 <ANCHOR id="hkl-geometry-list-multiply" href="hkl/hkl-hkl-geometry-private.html#hkl-geometry-list-multiply">
 <ANCHOR id="hkl-geometry-list-multiply-from-range" href="hkl/hkl-hkl-geometry-private.html#hkl-geometry-list-multiply-from-range">
-<ANCHOR id="hkl-geometry-list-new" href="hkl/hkl-hkl-geometry-private.html#hkl-geometry-list-new">
-<ANCHOR id="hkl-geometry-list-new-copy" href="hkl/hkl-hkl-geometry-private.html#hkl-geometry-list-new-copy">
 <ANCHOR id="hkl-geometry-list-remove-invalid" href="hkl/hkl-hkl-geometry-private.html#hkl-geometry-list-remove-invalid">
-<ANCHOR id="hkl-geometry-list-reset" href="hkl/hkl-hkl-geometry-private.html#hkl-geometry-list-reset">
-<ANCHOR id="hkl-geometry-list-sort" href="hkl/hkl-hkl-geometry-private.html#hkl-geometry-list-sort">
-<ANCHOR id="hkl-geometry-new" href="hkl/hkl-hkl-geometry-private.html#hkl-geometry-new">
-<ANCHOR id="hkl-geometry-update" href="hkl/hkl-hkl-geometry-private.html#hkl-geometry-update">
-<ANCHOR id="hkl-holder-add-rotation-axis" href="hkl/hkl-hkl-geometry-private.html#hkl-holder-add-rotation-axis">
+<ANCHOR id="hkl-geometry-list-item-new" href="hkl/hkl-hkl-geometry-private.html#hkl-geometry-list-item-new">
+<ANCHOR id="hkl-geometry-list-item-new-copy" href="hkl/hkl-hkl-geometry-private.html#hkl-geometry-list-item-new-copy">
+<ANCHOR id="hkl-geometry-list-item-free" href="hkl/hkl-hkl-geometry-private.html#hkl-geometry-list-item-free">
+<ANCHOR id="hkl-hkl-geometry-private.other_details" href="hkl/hkl-hkl-geometry-private.html#hkl-hkl-geometry-private.other_details">
+<ANCHOR id="darray-holder" href="hkl/hkl-hkl-geometry-private.html#darray-holder">
+<ANCHOR id="HklHolderConfig" href="hkl/hkl-hkl-geometry-private.html#HklHolderConfig">
+<ANCHOR id="HklHolder" href="hkl/hkl-hkl-geometry-private.html#HklHolder">
+<ANCHOR id="HklGeometry" href="hkl/hkl-hkl-geometry-private.html#HklGeometry">
+<ANCHOR id="HKL-GEOMETRY-ERROR:CAPS" href="hkl/hkl-hkl-geometry-private.html#HKL-GEOMETRY-ERROR:CAPS">
+<ANCHOR id="HklGeometryError" href="hkl/hkl-hkl-geometry-private.html#HklGeometryError">
+<ANCHOR id="HklGeometryList" href="hkl/hkl-hkl-geometry-private.html#HklGeometryList">
+<ANCHOR id="HklGeometryListItem" href="hkl/hkl-hkl-geometry-private.html#HklGeometryListItem">
 <ANCHOR id="hkl-hkl-interval-private" href="hkl/hkl-hkl-interval-private.html">
-<ANCHOR id="hkl-hkl-interval-private.synopsis" href="hkl/hkl-hkl-interval-private.html#hkl-hkl-interval-private.synopsis">
+<ANCHOR id="hkl-hkl-interval-private.functions" href="hkl/hkl-hkl-interval-private.html#hkl-hkl-interval-private.functions">
+<ANCHOR id="hkl-hkl-interval-private.other" href="hkl/hkl-hkl-interval-private.html#hkl-hkl-interval-private.other">
 <ANCHOR id="hkl-hkl-interval-private.description" href="hkl/hkl-hkl-interval-private.html#hkl-hkl-interval-private.description">
-<ANCHOR id="hkl-hkl-interval-private.details" href="hkl/hkl-hkl-interval-private.html#hkl-hkl-interval-private.details">
-<ANCHOR id="HklInterval" href="hkl/hkl-hkl-interval-private.html#HklInterval">
-<ANCHOR id="hkl-interval-acos" href="hkl/hkl-hkl-interval-private.html#hkl-interval-acos">
-<ANCHOR id="hkl-interval-angle-restrict-symm" href="hkl/hkl-hkl-interval-private.html#hkl-interval-angle-restrict-symm">
-<ANCHOR id="hkl-interval-asin" href="hkl/hkl-hkl-interval-private.html#hkl-interval-asin">
-<ANCHOR id="hkl-interval-atan" href="hkl/hkl-hkl-interval-private.html#hkl-interval-atan">
-<ANCHOR id="hkl-interval-cmp" href="hkl/hkl-hkl-interval-private.html#hkl-interval-cmp">
-<ANCHOR id="hkl-interval-contain-zero" href="hkl/hkl-hkl-interval-private.html#hkl-interval-contain-zero">
-<ANCHOR id="hkl-interval-cos" href="hkl/hkl-hkl-interval-private.html#hkl-interval-cos">
-<ANCHOR id="hkl-interval-divides-double" href="hkl/hkl-hkl-interval-private.html#hkl-interval-divides-double">
+<ANCHOR id="hkl-hkl-interval-private.functions_details" href="hkl/hkl-hkl-interval-private.html#hkl-hkl-interval-private.functions_details">
 <ANCHOR id="hkl-interval-dup" href="hkl/hkl-hkl-interval-private.html#hkl-interval-dup">
 <ANCHOR id="hkl-interval-free" href="hkl/hkl-hkl-interval-private.html#hkl-interval-free">
-<ANCHOR id="hkl-interval-length" href="hkl/hkl-hkl-interval-private.html#hkl-interval-length">
-<ANCHOR id="hkl-interval-minus-double" href="hkl/hkl-hkl-interval-private.html#hkl-interval-minus-double">
-<ANCHOR id="hkl-interval-minus-interval" href="hkl/hkl-hkl-interval-private.html#hkl-interval-minus-interval">
-<ANCHOR id="hkl-interval-plus-double" href="hkl/hkl-hkl-interval-private.html#hkl-interval-plus-double">
+<ANCHOR id="hkl-interval-cmp" href="hkl/hkl-hkl-interval-private.html#hkl-interval-cmp">
 <ANCHOR id="hkl-interval-plus-interval" href="hkl/hkl-hkl-interval-private.html#hkl-interval-plus-interval">
+<ANCHOR id="hkl-interval-plus-double" href="hkl/hkl-hkl-interval-private.html#hkl-interval-plus-double">
+<ANCHOR id="hkl-interval-minus-interval" href="hkl/hkl-hkl-interval-private.html#hkl-interval-minus-interval">
+<ANCHOR id="hkl-interval-minus-double" href="hkl/hkl-hkl-interval-private.html#hkl-interval-minus-double">
+<ANCHOR id="hkl-interval-times-interval" href="hkl/hkl-hkl-interval-private.html#hkl-interval-times-interval">
+<ANCHOR id="hkl-interval-times-double" href="hkl/hkl-hkl-interval-private.html#hkl-interval-times-double">
+<ANCHOR id="hkl-interval-divides-double" href="hkl/hkl-hkl-interval-private.html#hkl-interval-divides-double">
+<ANCHOR id="hkl-interval-contain-zero" href="hkl/hkl-hkl-interval-private.html#hkl-interval-contain-zero">
+<ANCHOR id="hkl-interval-cos" href="hkl/hkl-hkl-interval-private.html#hkl-interval-cos">
+<ANCHOR id="hkl-interval-acos" href="hkl/hkl-hkl-interval-private.html#hkl-interval-acos">
 <ANCHOR id="hkl-interval-sin" href="hkl/hkl-hkl-interval-private.html#hkl-interval-sin">
+<ANCHOR id="hkl-interval-asin" href="hkl/hkl-hkl-interval-private.html#hkl-interval-asin">
 <ANCHOR id="hkl-interval-tan" href="hkl/hkl-hkl-interval-private.html#hkl-interval-tan">
-<ANCHOR id="hkl-interval-times-double" href="hkl/hkl-hkl-interval-private.html#hkl-interval-times-double">
-<ANCHOR id="hkl-interval-times-interval" href="hkl/hkl-hkl-interval-private.html#hkl-interval-times-interval">
+<ANCHOR id="hkl-interval-atan" href="hkl/hkl-hkl-interval-private.html#hkl-interval-atan">
+<ANCHOR id="hkl-interval-length" href="hkl/hkl-hkl-interval-private.html#hkl-interval-length">
+<ANCHOR id="hkl-interval-angle-restrict-symm" href="hkl/hkl-hkl-interval-private.html#hkl-interval-angle-restrict-symm">
+<ANCHOR id="hkl-hkl-interval-private.other_details" href="hkl/hkl-hkl-interval-private.html#hkl-hkl-interval-private.other_details">
+<ANCHOR id="HklInterval" href="hkl/hkl-hkl-interval-private.html#HklInterval">
 <ANCHOR id="hkl-hkl-lattice-private" href="hkl/hkl-hkl-lattice-private.html">
-<ANCHOR id="hkl-hkl-lattice-private.synopsis" href="hkl/hkl-hkl-lattice-private.html#hkl-hkl-lattice-private.synopsis">
+<ANCHOR id="hkl-hkl-lattice-private.functions" href="hkl/hkl-hkl-lattice-private.html#hkl-hkl-lattice-private.functions">
+<ANCHOR id="hkl-hkl-lattice-private.other" href="hkl/hkl-hkl-lattice-private.html#hkl-hkl-lattice-private.other">
 <ANCHOR id="hkl-hkl-lattice-private.description" href="hkl/hkl-hkl-lattice-private.html#hkl-hkl-lattice-private.description">
-<ANCHOR id="hkl-hkl-lattice-private.details" href="hkl/hkl-hkl-lattice-private.html#hkl-hkl-lattice-private.details">
-<ANCHOR id="HKL-LATTICE-ERROR:CAPS" href="hkl/hkl-hkl-lattice-private.html#HKL-LATTICE-ERROR:CAPS">
-<ANCHOR id="HklLattice" href="hkl/hkl-hkl-lattice-private.html#HklLattice">
-<ANCHOR id="HklLatticeError" href="hkl/hkl-hkl-lattice-private.html#HklLatticeError">
+<ANCHOR id="hkl-hkl-lattice-private.functions_details" href="hkl/hkl-hkl-lattice-private.html#hkl-hkl-lattice-private.functions_details">
 <ANCHOR id="g-quark-from-static-string" href="hkl/hkl-hkl-lattice-private.html#g-quark-from-static-string">
-<ANCHOR id="hkl-lattice-fprintf" href="hkl/hkl-hkl-lattice-private.html#hkl-lattice-fprintf">
 <ANCHOR id="hkl-lattice-lattice-set" href="hkl/hkl-hkl-lattice-private.html#hkl-lattice-lattice-set">
 <ANCHOR id="hkl-lattice-randomize" href="hkl/hkl-hkl-lattice-private.html#hkl-lattice-randomize">
+<ANCHOR id="hkl-lattice-fprintf" href="hkl/hkl-hkl-lattice-private.html#hkl-lattice-fprintf">
+<ANCHOR id="hkl-hkl-lattice-private.other_details" href="hkl/hkl-hkl-lattice-private.html#hkl-hkl-lattice-private.other_details">
+<ANCHOR id="HklLattice" href="hkl/hkl-hkl-lattice-private.html#HklLattice">
+<ANCHOR id="HKL-LATTICE-ERROR:CAPS" href="hkl/hkl-hkl-lattice-private.html#HKL-LATTICE-ERROR:CAPS">
+<ANCHOR id="HklLatticeError" href="hkl/hkl-hkl-lattice-private.html#HklLatticeError">
 <ANCHOR id="hkl-hkl-macros-private" href="hkl/hkl-hkl-macros-private.html">
-<ANCHOR id="hkl-hkl-macros-private.synopsis" href="hkl/hkl-hkl-macros-private.html#hkl-hkl-macros-private.synopsis">
+<ANCHOR id="hkl-hkl-macros-private.functions" href="hkl/hkl-hkl-macros-private.html#hkl-hkl-macros-private.functions">
+<ANCHOR id="hkl-hkl-macros-private.other" href="hkl/hkl-hkl-macros-private.html#hkl-hkl-macros-private.other">
 <ANCHOR id="hkl-hkl-macros-private.description" href="hkl/hkl-hkl-macros-private.html#hkl-hkl-macros-private.description">
-<ANCHOR id="hkl-hkl-macros-private.details" href="hkl/hkl-hkl-macros-private.html#hkl-hkl-macros-private.details">
+<ANCHOR id="hkl-hkl-macros-private.functions_details" href="hkl/hkl-hkl-macros-private.html#hkl-hkl-macros-private.functions_details">
+<ANCHOR id="hkl-assert" href="hkl/hkl-hkl-macros-private.html#hkl-assert">
+<ANCHOR id="hkl-error" href="hkl/hkl-hkl-macros-private.html#hkl-error">
+<ANCHOR id="G-GNUC-PRINTF:CAPS" href="hkl/hkl-hkl-macros-private.html#G-GNUC-PRINTF:CAPS">
+<ANCHOR id="alloc-nr" href="hkl/hkl-hkl-macros-private.html#alloc-nr">
 <ANCHOR id="ALLOC-GROW:CAPS" href="hkl/hkl-hkl-macros-private.html#ALLOC-GROW:CAPS">
 <ANCHOR id="DARRAY:CAPS" href="hkl/hkl-hkl-macros-private.html#DARRAY:CAPS">
-<ANCHOR id="G-GNUC-PRINTF:CAPS" href="hkl/hkl-hkl-macros-private.html#G-GNUC-PRINTF:CAPS">
-<ANCHOR id="HKL-EULERIAN-KAPPA-SOLUTION:CAPS" href="hkl/hkl-hkl-macros-private.html#HKL-EULERIAN-KAPPA-SOLUTION:CAPS">
+<ANCHOR id="hkl-printbt" href="hkl/hkl-hkl-macros-private.html#hkl-printbt">
 <ANCHOR id="HKL-MALLOC:CAPS" href="hkl/hkl-hkl-macros-private.html#HKL-MALLOC:CAPS">
+<ANCHOR id="hkl-hkl-macros-private.other_details" href="hkl/hkl-hkl-macros-private.html#hkl-hkl-macros-private.other_details">
+<ANCHOR id="HKL-EULERIAN-KAPPA-SOLUTION:CAPS" href="hkl/hkl-hkl-macros-private.html#HKL-EULERIAN-KAPPA-SOLUTION:CAPS">
 <ANCHOR id="NORETURN:CAPS" href="hkl/hkl-hkl-macros-private.html#NORETURN:CAPS">
-<ANCHOR id="alloc-nr" href="hkl/hkl-hkl-macros-private.html#alloc-nr">
-<ANCHOR id="hkl-assert" href="hkl/hkl-hkl-macros-private.html#hkl-assert">
-<ANCHOR id="hkl-error" href="hkl/hkl-hkl-macros-private.html#hkl-error">
-<ANCHOR id="hkl-printbt" href="hkl/hkl-hkl-macros-private.html#hkl-printbt">
 <ANCHOR id="hkl-hkl-matrix-private" href="hkl/hkl-hkl-matrix-private.html">
-<ANCHOR id="hkl-hkl-matrix-private.synopsis" href="hkl/hkl-hkl-matrix-private.html#hkl-hkl-matrix-private.synopsis">
+<ANCHOR id="hkl-hkl-matrix-private.functions" href="hkl/hkl-hkl-matrix-private.html#hkl-hkl-matrix-private.functions">
+<ANCHOR id="hkl-hkl-matrix-private.other" href="hkl/hkl-hkl-matrix-private.html#hkl-hkl-matrix-private.other">
 <ANCHOR id="hkl-hkl-matrix-private.description" href="hkl/hkl-hkl-matrix-private.html#hkl-hkl-matrix-private.description">
-<ANCHOR id="hkl-hkl-matrix-private.details" href="hkl/hkl-hkl-matrix-private.html#hkl-hkl-matrix-private.details">
-<ANCHOR id="HklMatrix" href="hkl/hkl-hkl-matrix-private.html#HklMatrix">
-<ANCHOR id="hkl-matrix-det" href="hkl/hkl-hkl-matrix-private.html#hkl-matrix-det">
+<ANCHOR id="hkl-hkl-matrix-private.functions_details" href="hkl/hkl-hkl-matrix-private.html#hkl-hkl-matrix-private.functions_details">
 <ANCHOR id="hkl-matrix-dup" href="hkl/hkl-hkl-matrix-private.html#hkl-matrix-dup">
-<ANCHOR id="hkl-matrix-fprintf" href="hkl/hkl-hkl-matrix-private.html#hkl-matrix-fprintf">
 <ANCHOR id="hkl-matrix-init-from-euler" href="hkl/hkl-hkl-matrix-private.html#hkl-matrix-init-from-euler">
-<ANCHOR id="hkl-matrix-init-from-two-vector" href="hkl/hkl-hkl-matrix-private.html#hkl-matrix-init-from-two-vector">
-<ANCHOR id="hkl-matrix-is-null" href="hkl/hkl-hkl-matrix-private.html#hkl-matrix-is-null">
 <ANCHOR id="hkl-matrix-matrix-set" href="hkl/hkl-hkl-matrix-private.html#hkl-matrix-matrix-set">
-<ANCHOR id="hkl-matrix-solve" href="hkl/hkl-hkl-matrix-private.html#hkl-matrix-solve">
-<ANCHOR id="hkl-matrix-times-vector" href="hkl/hkl-hkl-matrix-private.html#hkl-matrix-times-vector">
+<ANCHOR id="hkl-matrix-init-from-two-vector" href="hkl/hkl-hkl-matrix-private.html#hkl-matrix-init-from-two-vector">
+<ANCHOR id="hkl-matrix-fprintf" href="hkl/hkl-hkl-matrix-private.html#hkl-matrix-fprintf">
 <ANCHOR id="hkl-matrix-to-euler" href="hkl/hkl-hkl-matrix-private.html#hkl-matrix-to-euler">
+<ANCHOR id="hkl-matrix-times-vector" href="hkl/hkl-hkl-matrix-private.html#hkl-matrix-times-vector">
 <ANCHOR id="hkl-matrix-transpose" href="hkl/hkl-hkl-matrix-private.html#hkl-matrix-transpose">
+<ANCHOR id="hkl-matrix-det" href="hkl/hkl-hkl-matrix-private.html#hkl-matrix-det">
+<ANCHOR id="hkl-matrix-solve" href="hkl/hkl-hkl-matrix-private.html#hkl-matrix-solve">
+<ANCHOR id="hkl-matrix-is-null" href="hkl/hkl-hkl-matrix-private.html#hkl-matrix-is-null">
+<ANCHOR id="hkl-hkl-matrix-private.other_details" href="hkl/hkl-hkl-matrix-private.html#hkl-hkl-matrix-private.other_details">
+<ANCHOR id="HklMatrix" href="hkl/hkl-hkl-matrix-private.html#HklMatrix">
 <ANCHOR id="hkl-hkl-parameter-private" href="hkl/hkl-hkl-parameter-private.html">
-<ANCHOR id="hkl-hkl-parameter-private.synopsis" href="hkl/hkl-hkl-parameter-private.html#hkl-hkl-parameter-private.synopsis">
+<ANCHOR id="hkl-hkl-parameter-private.functions" href="hkl/hkl-hkl-parameter-private.html#hkl-hkl-parameter-private.functions">
+<ANCHOR id="hkl-hkl-parameter-private.other" href="hkl/hkl-hkl-parameter-private.html#hkl-hkl-parameter-private.other">
 <ANCHOR id="hkl-hkl-parameter-private.description" href="hkl/hkl-hkl-parameter-private.html#hkl-hkl-parameter-private.description">
-<ANCHOR id="hkl-hkl-parameter-private.details" href="hkl/hkl-hkl-parameter-private.html#hkl-hkl-parameter-private.details">
+<ANCHOR id="hkl-hkl-parameter-private.functions_details" href="hkl/hkl-hkl-parameter-private.html#hkl-hkl-parameter-private.functions_details">
+<ANCHOR id="g-quark-from-static-string" href="hkl/hkl-hkl-parameter-private.html#g-quark-from-static-string">
+<ANCHOR id="fprintf" href="hkl/hkl-hkl-parameter-private.html#fprintf">
+<ANCHOR id="hkl-parameter-new" href="hkl/hkl-hkl-parameter-private.html#hkl-parameter-new">
+<ANCHOR id="hkl-parameter-init-copy" href="hkl/hkl-hkl-parameter-private.html#hkl-parameter-init-copy">
+<ANCHOR id="hkl-parameter-value-get-closest" href="hkl/hkl-hkl-parameter-private.html#hkl-parameter-value-get-closest">
+<ANCHOR id="hkl-parameter-value-set-smallest-in-range" href="hkl/hkl-hkl-parameter-private.html#hkl-parameter-value-set-smallest-in-range">
+<ANCHOR id="hkl-parameter-is-valid" href="hkl/hkl-hkl-parameter-private.html#hkl-parameter-is-valid">
+<ANCHOR id="hkl-parameter-fprintf" href="hkl/hkl-hkl-parameter-private.html#hkl-parameter-fprintf">
+<ANCHOR id="hkl-hkl-parameter-private.other_details" href="hkl/hkl-hkl-parameter-private.html#hkl-hkl-parameter-private.other_details">
+<ANCHOR id="HklParameter" href="hkl/hkl-hkl-parameter-private.html#HklParameter">
 <ANCHOR id="HKL-PARAMETER-DEFAULTS:CAPS" href="hkl/hkl-hkl-parameter-private.html#HKL-PARAMETER-DEFAULTS:CAPS">
 <ANCHOR id="HKL-PARAMETER-DEFAULTS-ANGLE:CAPS" href="hkl/hkl-hkl-parameter-private.html#HKL-PARAMETER-DEFAULTS-ANGLE:CAPS">
 <ANCHOR id="HKL-PARAMETER-ERROR:CAPS" href="hkl/hkl-hkl-parameter-private.html#HKL-PARAMETER-ERROR:CAPS">
-<ANCHOR id="HKL-PARAMETER-OPERATIONS-DEFAULTS:CAPS" href="hkl/hkl-hkl-parameter-private.html#HKL-PARAMETER-OPERATIONS-DEFAULTS:CAPS">
-<ANCHOR id="HklParameter" href="hkl/hkl-hkl-parameter-private.html#HklParameter">
 <ANCHOR id="HklParameterError" href="hkl/hkl-hkl-parameter-private.html#HklParameterError">
 <ANCHOR id="HklParameterOperations" href="hkl/hkl-hkl-parameter-private.html#HklParameterOperations">
-<ANCHOR id="alea" href="hkl/hkl-hkl-parameter-private.html#alea">
-<ANCHOR id="darray-parameter" href="hkl/hkl-hkl-parameter-private.html#darray-parameter">
+<ANCHOR id="HKL-PARAMETER-OPERATIONS-DEFAULTS:CAPS" href="hkl/hkl-hkl-parameter-private.html#HKL-PARAMETER-OPERATIONS-DEFAULTS:CAPS">
 <ANCHOR id="dup" href="hkl/hkl-hkl-parameter-private.html#dup">
+<ANCHOR id="alea" href="hkl/hkl-hkl-parameter-private.html#alea">
 <ANCHOR id="factor" href="hkl/hkl-hkl-parameter-private.html#factor">
-<ANCHOR id="fprintf" href="hkl/hkl-hkl-parameter-private.html#fprintf">
-<ANCHOR id="g-quark-from-static-string" href="hkl/hkl-hkl-parameter-private.html#g-quark-from-static-string">
-<ANCHOR id="hkl-parameter-fprintf" href="hkl/hkl-hkl-parameter-private.html#hkl-parameter-fprintf">
-<ANCHOR id="hkl-parameter-init-copy" href="hkl/hkl-hkl-parameter-private.html#hkl-parameter-init-copy">
-<ANCHOR id="hkl-parameter-is-valid" href="hkl/hkl-hkl-parameter-private.html#hkl-parameter-is-valid">
-<ANCHOR id="hkl-parameter-new" href="hkl/hkl-hkl-parameter-private.html#hkl-parameter-new">
-<ANCHOR id="hkl-parameter-value-get-closest" href="hkl/hkl-hkl-parameter-private.html#hkl-parameter-value-get-closest">
-<ANCHOR id="hkl-parameter-value-set-smallest-in-range" href="hkl/hkl-hkl-parameter-private.html#hkl-parameter-value-set-smallest-in-range">
+<ANCHOR id="darray-parameter" href="hkl/hkl-hkl-parameter-private.html#darray-parameter">
 <ANCHOR id="hkl-hkl-pseudoaxis-auto-private" href="hkl/hkl-hkl-pseudoaxis-auto-private.html">
-<ANCHOR id="hkl-hkl-pseudoaxis-auto-private.synopsis" href="hkl/hkl-hkl-pseudoaxis-auto-private.html#hkl-hkl-pseudoaxis-auto-private.synopsis">
+<ANCHOR id="hkl-hkl-pseudoaxis-auto-private.functions" href="hkl/hkl-hkl-pseudoaxis-auto-private.html#hkl-hkl-pseudoaxis-auto-private.functions">
+<ANCHOR id="hkl-hkl-pseudoaxis-auto-private.other" href="hkl/hkl-hkl-pseudoaxis-auto-private.html#hkl-hkl-pseudoaxis-auto-private.other">
 <ANCHOR id="hkl-hkl-pseudoaxis-auto-private.description" href="hkl/hkl-hkl-pseudoaxis-auto-private.html#hkl-hkl-pseudoaxis-auto-private.description">
-<ANCHOR id="hkl-hkl-pseudoaxis-auto-private.details" href="hkl/hkl-hkl-pseudoaxis-auto-private.html#hkl-hkl-pseudoaxis-auto-private.details">
+<ANCHOR id="hkl-hkl-pseudoaxis-auto-private.functions_details" href="hkl/hkl-hkl-pseudoaxis-auto-private.html#hkl-hkl-pseudoaxis-auto-private.functions_details">
 <ANCHOR id="CHECK-NAN:CAPS" href="hkl/hkl-hkl-pseudoaxis-auto-private.html#CHECK-NAN:CAPS">
 <ANCHOR id="HKL-MODE-AUTO-INFO:CAPS" href="hkl/hkl-hkl-pseudoaxis-auto-private.html#HKL-MODE-AUTO-INFO:CAPS">
 <ANCHOR id="HKL-MODE-AUTO-INFO-WITH-PARAMS:CAPS" href="hkl/hkl-hkl-pseudoaxis-auto-private.html#HKL-MODE-AUTO-INFO-WITH-PARAMS:CAPS">
-<ANCHOR id="HKL-MODE-AUTO-WITH-INIT-ERROR:CAPS" href="hkl/hkl-hkl-pseudoaxis-auto-private.html#HKL-MODE-AUTO-WITH-INIT-ERROR:CAPS">
-<ANCHOR id="HKL-MODE-OPERATIONS-AUTO-DEFAULTS:CAPS" href="hkl/hkl-hkl-pseudoaxis-auto-private.html#HKL-MODE-OPERATIONS-AUTO-DEFAULTS:CAPS">
-<ANCHOR id="HKL-MODE-OPERATIONS-AUTO-WITH-INIT-DEFAULTS:CAPS" href="hkl/hkl-hkl-pseudoaxis-auto-private.html#HKL-MODE-OPERATIONS-AUTO-WITH-INIT-DEFAULTS:CAPS">
+<ANCHOR id="hkl-mode-auto-new" href="hkl/hkl-hkl-pseudoaxis-auto-private.html#hkl-mode-auto-new">
+<ANCHOR id="hkl-mode-auto-init" href="hkl/hkl-hkl-pseudoaxis-auto-private.html#hkl-mode-auto-init">
+<ANCHOR id="hkl-mode-auto-set-real" href="hkl/hkl-hkl-pseudoaxis-auto-private.html#hkl-mode-auto-set-real">
+<ANCHOR id="g-quark-from-static-string" href="hkl/hkl-hkl-pseudoaxis-auto-private.html#g-quark-from-static-string">
+<ANCHOR id="hkl-mode-auto-with-init-new" href="hkl/hkl-hkl-pseudoaxis-auto-private.html#hkl-mode-auto-with-init-new">
+<ANCHOR id="hkl-hkl-pseudoaxis-auto-private.other_details" href="hkl/hkl-hkl-pseudoaxis-auto-private.html#hkl-hkl-pseudoaxis-auto-private.other_details">
 <ANCHOR id="HklFunction" href="hkl/hkl-hkl-pseudoaxis-auto-private.html#HklFunction">
+<ANCHOR id="darray-function" href="hkl/hkl-hkl-pseudoaxis-auto-private.html#darray-function">
 <ANCHOR id="HklModeAutoInfo" href="hkl/hkl-hkl-pseudoaxis-auto-private.html#HklModeAutoInfo">
+<ANCHOR id="HKL-MODE-OPERATIONS-AUTO-DEFAULTS:CAPS" href="hkl/hkl-hkl-pseudoaxis-auto-private.html#HKL-MODE-OPERATIONS-AUTO-DEFAULTS:CAPS">
 <ANCHOR id="HklModeAutoWithInit" href="hkl/hkl-hkl-pseudoaxis-auto-private.html#HklModeAutoWithInit">
+<ANCHOR id="HKL-MODE-AUTO-WITH-INIT-ERROR:CAPS" href="hkl/hkl-hkl-pseudoaxis-auto-private.html#HKL-MODE-AUTO-WITH-INIT-ERROR:CAPS">
 <ANCHOR id="HklModeError" href="hkl/hkl-hkl-pseudoaxis-auto-private.html#HklModeError">
-<ANCHOR id="darray-function" href="hkl/hkl-hkl-pseudoaxis-auto-private.html#darray-function">
-<ANCHOR id="g-quark-from-static-string" href="hkl/hkl-hkl-pseudoaxis-auto-private.html#g-quark-from-static-string">
-<ANCHOR id="hkl-mode-auto-init" href="hkl/hkl-hkl-pseudoaxis-auto-private.html#hkl-mode-auto-init">
-<ANCHOR id="hkl-mode-auto-new" href="hkl/hkl-hkl-pseudoaxis-auto-private.html#hkl-mode-auto-new">
-<ANCHOR id="hkl-mode-auto-set-real" href="hkl/hkl-hkl-pseudoaxis-auto-private.html#hkl-mode-auto-set-real">
-<ANCHOR id="hkl-mode-auto-with-init-new" href="hkl/hkl-hkl-pseudoaxis-auto-private.html#hkl-mode-auto-with-init-new">
+<ANCHOR id="HKL-MODE-OPERATIONS-AUTO-WITH-INIT-DEFAULTS:CAPS" href="hkl/hkl-hkl-pseudoaxis-auto-private.html#HKL-MODE-OPERATIONS-AUTO-WITH-INIT-DEFAULTS:CAPS">
 <ANCHOR id="self" href="hkl/hkl-hkl-pseudoaxis-auto-private.html#self">
 <ANCHOR id="hkl-hkl-pseudoaxis-common-eulerians-private" href="hkl/hkl-hkl-pseudoaxis-common-eulerians-private.html">
-<ANCHOR id="hkl-hkl-pseudoaxis-common-eulerians-private.synopsis" href="hkl/hkl-hkl-pseudoaxis-common-eulerians-private.html#hkl-hkl-pseudoaxis-common-eulerians-private.synopsis">
+<ANCHOR id="hkl-hkl-pseudoaxis-common-eulerians-private.functions" href="hkl/hkl-hkl-pseudoaxis-common-eulerians-private.html#hkl-hkl-pseudoaxis-common-eulerians-private.functions">
 <ANCHOR id="hkl-hkl-pseudoaxis-common-eulerians-private.description" href="hkl/hkl-hkl-pseudoaxis-common-eulerians-private.html#hkl-hkl-pseudoaxis-common-eulerians-private.description">
-<ANCHOR id="hkl-hkl-pseudoaxis-common-eulerians-private.details" href="hkl/hkl-hkl-pseudoaxis-common-eulerians-private.html#hkl-hkl-pseudoaxis-common-eulerians-private.details">
+<ANCHOR id="hkl-hkl-pseudoaxis-common-eulerians-private.functions_details" href="hkl/hkl-hkl-pseudoaxis-common-eulerians-private.html#hkl-hkl-pseudoaxis-common-eulerians-private.functions_details">
 <ANCHOR id="hkl-engine-eulerians-new" href="hkl/hkl-hkl-pseudoaxis-common-eulerians-private.html#hkl-engine-eulerians-new">
 <ANCHOR id="kappa-2-kappap" href="hkl/hkl-hkl-pseudoaxis-common-eulerians-private.html#kappa-2-kappap">
+<ANCHOR id="hkl-hkl-pseudoaxis-common-eulerians-private.other_details" href="hkl/hkl-hkl-pseudoaxis-common-eulerians-private.html#hkl-hkl-pseudoaxis-common-eulerians-private.other_details">
 <ANCHOR id="hkl-hkl-pseudoaxis-common-hkl-private" href="hkl/hkl-hkl-pseudoaxis-common-hkl-private.html">
-<ANCHOR id="hkl-hkl-pseudoaxis-common-hkl-private.synopsis" href="hkl/hkl-hkl-pseudoaxis-common-hkl-private.html#hkl-hkl-pseudoaxis-common-hkl-private.synopsis">
+<ANCHOR id="hkl-hkl-pseudoaxis-common-hkl-private.functions" href="hkl/hkl-hkl-pseudoaxis-common-hkl-private.html#hkl-hkl-pseudoaxis-common-hkl-private.functions">
+<ANCHOR id="hkl-hkl-pseudoaxis-common-hkl-private.other" href="hkl/hkl-hkl-pseudoaxis-common-hkl-private.html#hkl-hkl-pseudoaxis-common-hkl-private.other">
 <ANCHOR id="hkl-hkl-pseudoaxis-common-hkl-private.description" href="hkl/hkl-hkl-pseudoaxis-common-hkl-private.html#hkl-hkl-pseudoaxis-common-hkl-private.description">
-<ANCHOR id="hkl-hkl-pseudoaxis-common-hkl-private.details" href="hkl/hkl-hkl-pseudoaxis-common-hkl-private.html#hkl-hkl-pseudoaxis-common-hkl-private.details">
-<ANCHOR id="CONSTANT-PARAMETER:CAPS" href="hkl/hkl-hkl-pseudoaxis-common-hkl-private.html#CONSTANT-PARAMETER:CAPS">
-<ANCHOR id="HKL-MODE-OPERATIONS-HKL-DEFAULTS:CAPS" href="hkl/hkl-hkl-pseudoaxis-common-hkl-private.html#HKL-MODE-OPERATIONS-HKL-DEFAULTS:CAPS">
-<ANCHOR id="HklEngineHkl" href="hkl/hkl-hkl-pseudoaxis-common-hkl-private.html#HklEngineHkl">
-<ANCHOR id="PSI-CONSTANT-PARAMETERS:CAPS" href="hkl/hkl-hkl-pseudoaxis-common-hkl-private.html#PSI-CONSTANT-PARAMETERS:CAPS">
+<ANCHOR id="hkl-hkl-pseudoaxis-common-hkl-private.functions_details" href="hkl/hkl-hkl-pseudoaxis-common-hkl-private.html#hkl-hkl-pseudoaxis-common-hkl-private.functions_details">
 <ANCHOR id="RUBh-minus-Q" href="hkl/hkl-hkl-pseudoaxis-common-hkl-private.html#RUBh-minus-Q">
-<ANCHOR id="hkl-engine-hkl-new" href="hkl/hkl-hkl-pseudoaxis-common-hkl-private.html#hkl-engine-hkl-new">
 <ANCHOR id="hkl-mode-get-hkl-real" href="hkl/hkl-hkl-pseudoaxis-common-hkl-private.html#hkl-mode-get-hkl-real">
-<ANCHOR id="hkl-mode-initialized-set-psi-constant-vertical-real" href="hkl/hkl-hkl-pseudoaxis-common-hkl-private.html#hkl-mode-initialized-set-psi-constant-vertical-real">
 <ANCHOR id="hkl-mode-set-hkl-real" href="hkl/hkl-hkl-pseudoaxis-common-hkl-private.html#hkl-mode-set-hkl-real">
+<ANCHOR id="hkl-mode-initialized-set-psi-constant-vertical-real" href="hkl/hkl-hkl-pseudoaxis-common-hkl-private.html#hkl-mode-initialized-set-psi-constant-vertical-real">
+<ANCHOR id="hkl-engine-hkl-new" href="hkl/hkl-hkl-pseudoaxis-common-hkl-private.html#hkl-engine-hkl-new">
+<ANCHOR id="CONSTANT-PARAMETER:CAPS" href="hkl/hkl-hkl-pseudoaxis-common-hkl-private.html#CONSTANT-PARAMETER:CAPS">
+<ANCHOR id="PSI-CONSTANT-PARAMETERS:CAPS" href="hkl/hkl-hkl-pseudoaxis-common-hkl-private.html#PSI-CONSTANT-PARAMETERS:CAPS">
+<ANCHOR id="hkl-hkl-pseudoaxis-common-hkl-private.other_details" href="hkl/hkl-hkl-pseudoaxis-common-hkl-private.html#hkl-hkl-pseudoaxis-common-hkl-private.other_details">
+<ANCHOR id="HklEngineHkl" href="hkl/hkl-hkl-pseudoaxis-common-hkl-private.html#HklEngineHkl">
+<ANCHOR id="HKL-MODE-OPERATIONS-HKL-DEFAULTS:CAPS" href="hkl/hkl-hkl-pseudoaxis-common-hkl-private.html#HKL-MODE-OPERATIONS-HKL-DEFAULTS:CAPS">
 <ANCHOR id="hkl-hkl-pseudoaxis-common-psi-private" href="hkl/hkl-hkl-pseudoaxis-common-psi-private.html">
-<ANCHOR id="hkl-hkl-pseudoaxis-common-psi-private.synopsis" href="hkl/hkl-hkl-pseudoaxis-common-psi-private.html#hkl-hkl-pseudoaxis-common-psi-private.synopsis">
+<ANCHOR id="hkl-hkl-pseudoaxis-common-psi-private.functions" href="hkl/hkl-hkl-pseudoaxis-common-psi-private.html#hkl-hkl-pseudoaxis-common-psi-private.functions">
+<ANCHOR id="hkl-hkl-pseudoaxis-common-psi-private.other" href="hkl/hkl-hkl-pseudoaxis-common-psi-private.html#hkl-hkl-pseudoaxis-common-psi-private.other">
 <ANCHOR id="hkl-hkl-pseudoaxis-common-psi-private.description" href="hkl/hkl-hkl-pseudoaxis-common-psi-private.html#hkl-hkl-pseudoaxis-common-psi-private.description">
-<ANCHOR id="hkl-hkl-pseudoaxis-common-psi-private.details" href="hkl/hkl-hkl-pseudoaxis-common-psi-private.html#hkl-hkl-pseudoaxis-common-psi-private.details">
-<ANCHOR id="HklEnginePsi" href="hkl/hkl-hkl-pseudoaxis-common-psi-private.html#HklEnginePsi">
-<ANCHOR id="HklModePsi" href="hkl/hkl-hkl-pseudoaxis-common-psi-private.html#HklModePsi">
-<ANCHOR id="hkl-engine-psi-new" href="hkl/hkl-hkl-pseudoaxis-common-psi-private.html#hkl-engine-psi-new">
+<ANCHOR id="hkl-hkl-pseudoaxis-common-psi-private.functions_details" href="hkl/hkl-hkl-pseudoaxis-common-psi-private.html#hkl-hkl-pseudoaxis-common-psi-private.functions_details">
 <ANCHOR id="hkl-mode-psi-new" href="hkl/hkl-hkl-pseudoaxis-common-psi-private.html#hkl-mode-psi-new">
+<ANCHOR id="hkl-engine-psi-new" href="hkl/hkl-hkl-pseudoaxis-common-psi-private.html#hkl-engine-psi-new">
+<ANCHOR id="hkl-hkl-pseudoaxis-common-psi-private.other_details" href="hkl/hkl-hkl-pseudoaxis-common-psi-private.html#hkl-hkl-pseudoaxis-common-psi-private.other_details">
+<ANCHOR id="HklModePsi" href="hkl/hkl-hkl-pseudoaxis-common-psi-private.html#HklModePsi">
+<ANCHOR id="HklEnginePsi" href="hkl/hkl-hkl-pseudoaxis-common-psi-private.html#HklEnginePsi">
 <ANCHOR id="hkl-hkl-pseudoaxis-common-q-private" href="hkl/hkl-hkl-pseudoaxis-common-q-private.html">
-<ANCHOR id="hkl-hkl-pseudoaxis-common-q-private.synopsis" href="hkl/hkl-hkl-pseudoaxis-common-q-private.html#hkl-hkl-pseudoaxis-common-q-private.synopsis">
+<ANCHOR id="hkl-hkl-pseudoaxis-common-q-private.functions" href="hkl/hkl-hkl-pseudoaxis-common-q-private.html#hkl-hkl-pseudoaxis-common-q-private.functions">
 <ANCHOR id="hkl-hkl-pseudoaxis-common-q-private.description" href="hkl/hkl-hkl-pseudoaxis-common-q-private.html#hkl-hkl-pseudoaxis-common-q-private.description">
-<ANCHOR id="hkl-hkl-pseudoaxis-common-q-private.details" href="hkl/hkl-hkl-pseudoaxis-common-q-private.html#hkl-hkl-pseudoaxis-common-q-private.details">
-<ANCHOR id="hkl-engine-q2-new" href="hkl/hkl-hkl-pseudoaxis-common-q-private.html#hkl-engine-q2-new">
+<ANCHOR id="hkl-hkl-pseudoaxis-common-q-private.functions_details" href="hkl/hkl-hkl-pseudoaxis-common-q-private.html#hkl-hkl-pseudoaxis-common-q-private.functions_details">
+<ANCHOR id="qmax" href="hkl/hkl-hkl-pseudoaxis-common-q-private.html#qmax">
 <ANCHOR id="hkl-engine-q-new" href="hkl/hkl-hkl-pseudoaxis-common-q-private.html#hkl-engine-q-new">
+<ANCHOR id="hkl-engine-q2-new" href="hkl/hkl-hkl-pseudoaxis-common-q-private.html#hkl-engine-q2-new">
 <ANCHOR id="hkl-engine-qper-qpar-new" href="hkl/hkl-hkl-pseudoaxis-common-q-private.html#hkl-engine-qper-qpar-new">
-<ANCHOR id="qmax" href="hkl/hkl-hkl-pseudoaxis-common-q-private.html#qmax">
+<ANCHOR id="hkl-hkl-pseudoaxis-common-q-private.other_details" href="hkl/hkl-hkl-pseudoaxis-common-q-private.html#hkl-hkl-pseudoaxis-common-q-private.other_details">
 <ANCHOR id="hkl-hkl-pseudoaxis-private" href="hkl/hkl-hkl-pseudoaxis-private.html">
-<ANCHOR id="hkl-hkl-pseudoaxis-private.synopsis" href="hkl/hkl-hkl-pseudoaxis-private.html#hkl-hkl-pseudoaxis-private.synopsis">
+<ANCHOR id="hkl-hkl-pseudoaxis-private.functions" href="hkl/hkl-hkl-pseudoaxis-private.html#hkl-hkl-pseudoaxis-private.functions">
+<ANCHOR id="hkl-hkl-pseudoaxis-private.other" href="hkl/hkl-hkl-pseudoaxis-private.html#hkl-hkl-pseudoaxis-private.other">
 <ANCHOR id="hkl-hkl-pseudoaxis-private.description" href="hkl/hkl-hkl-pseudoaxis-private.html#hkl-hkl-pseudoaxis-private.description">
-<ANCHOR id="hkl-hkl-pseudoaxis-private.details" href="hkl/hkl-hkl-pseudoaxis-private.html#hkl-hkl-pseudoaxis-private.details">
-<ANCHOR id="HKL-ENGINE-ERROR:CAPS" href="hkl/hkl-hkl-pseudoaxis-private.html#HKL-ENGINE-ERROR:CAPS">
-<ANCHOR id="HKL-ENGINE-INFO:CAPS" href="hkl/hkl-hkl-pseudoaxis-private.html#HKL-ENGINE-INFO:CAPS">
-<ANCHOR id="HKL-ENGINE-LIST-ERROR:CAPS" href="hkl/hkl-hkl-pseudoaxis-private.html#HKL-ENGINE-LIST-ERROR:CAPS">
-<ANCHOR id="HKL-ENGINE-OPERATIONS-DEFAULTS:CAPS" href="hkl/hkl-hkl-pseudoaxis-private.html#HKL-ENGINE-OPERATIONS-DEFAULTS:CAPS">
-<ANCHOR id="HKL-MODE-INFO:CAPS" href="hkl/hkl-hkl-pseudoaxis-private.html#HKL-MODE-INFO:CAPS">
+<ANCHOR id="hkl-hkl-pseudoaxis-private.functions_details" href="hkl/hkl-hkl-pseudoaxis-private.html#hkl-hkl-pseudoaxis-private.functions_details">
 <ANCHOR id="HKL-MODE-INFO-RO:CAPS" href="hkl/hkl-hkl-pseudoaxis-private.html#HKL-MODE-INFO-RO:CAPS">
+<ANCHOR id="HKL-MODE-INFO:CAPS" href="hkl/hkl-hkl-pseudoaxis-private.html#HKL-MODE-INFO:CAPS">
 <ANCHOR id="HKL-MODE-INFO-RO-WITH-PARAMS:CAPS" href="hkl/hkl-hkl-pseudoaxis-private.html#HKL-MODE-INFO-RO-WITH-PARAMS:CAPS">
 <ANCHOR id="HKL-MODE-INFO-WITH-PARAMS:CAPS" href="hkl/hkl-hkl-pseudoaxis-private.html#HKL-MODE-INFO-WITH-PARAMS:CAPS">
+<ANCHOR id="HKL-ENGINE-INFO:CAPS" href="hkl/hkl-hkl-pseudoaxis-private.html#HKL-ENGINE-INFO:CAPS">
+<ANCHOR id="g-quark-from-static-string" href="hkl/hkl-hkl-pseudoaxis-private.html#g-quark-from-static-string">
+<ANCHOR id="darray-item" href="hkl/hkl-hkl-pseudoaxis-private.html#darray-item">
+<ANCHOR id="hkl-hkl-pseudoaxis-private.other_details" href="hkl/hkl-hkl-pseudoaxis-private.html#hkl-hkl-pseudoaxis-private.other_details">
+<ANCHOR id="darray-mode" href="hkl/hkl-hkl-pseudoaxis-private.html#darray-mode">
+<ANCHOR id="HklModeInfo" href="hkl/hkl-hkl-pseudoaxis-private.html#HklModeInfo">
+<ANCHOR id="HklModeOperations" href="hkl/hkl-hkl-pseudoaxis-private.html#HklModeOperations">
 <ANCHOR id="HKL-MODE-OPERATIONS-DEFAULTS:CAPS" href="hkl/hkl-hkl-pseudoaxis-private.html#HKL-MODE-OPERATIONS-DEFAULTS:CAPS">
-<ANCHOR id="HklEngine" href="hkl/hkl-hkl-pseudoaxis-private.html#HklEngine">
-<ANCHOR id="HklEngineError" href="hkl/hkl-hkl-pseudoaxis-private.html#HklEngineError">
+<ANCHOR id="HklMode" href="hkl/hkl-hkl-pseudoaxis-private.html#HklMode">
+<ANCHOR id="self" href="hkl/hkl-hkl-pseudoaxis-private.html#self">
 <ANCHOR id="HklEngineInfo" href="hkl/hkl-hkl-pseudoaxis-private.html#HklEngineInfo">
+<ANCHOR id="HklEngine" href="hkl/hkl-hkl-pseudoaxis-private.html#HklEngine">
 <ANCHOR id="HklEngineList" href="hkl/hkl-hkl-pseudoaxis-private.html#HklEngineList">
-<ANCHOR id="HklEngineListError" href="hkl/hkl-hkl-pseudoaxis-private.html#HklEngineListError">
+<ANCHOR id="HKL-ENGINE-ERROR:CAPS" href="hkl/hkl-hkl-pseudoaxis-private.html#HKL-ENGINE-ERROR:CAPS">
+<ANCHOR id="HklEngineError" href="hkl/hkl-hkl-pseudoaxis-private.html#HklEngineError">
+<ANCHOR id="i" href="hkl/hkl-hkl-pseudoaxis-private.html#i">
 <ANCHOR id="HklEngineOperations" href="hkl/hkl-hkl-pseudoaxis-private.html#HklEngineOperations">
-<ANCHOR id="HklMode" href="hkl/hkl-hkl-pseudoaxis-private.html#HklMode">
-<ANCHOR id="HklModeInfo" href="hkl/hkl-hkl-pseudoaxis-private.html#HklModeInfo">
-<ANCHOR id="HklModeOperations" href="hkl/hkl-hkl-pseudoaxis-private.html#HklModeOperations">
+<ANCHOR id="HKL-ENGINE-OPERATIONS-DEFAULTS:CAPS" href="hkl/hkl-hkl-pseudoaxis-private.html#HKL-ENGINE-OPERATIONS-DEFAULTS:CAPS">
 <ANCHOR id="axis" href="hkl/hkl-hkl-pseudoaxis-private.html#axis">
-<ANCHOR id="darray-item" href="hkl/hkl-hkl-pseudoaxis-private.html#darray-item">
-<ANCHOR id="darray-mode" href="hkl/hkl-hkl-pseudoaxis-private.html#darray-mode">
-<ANCHOR id="g-quark-from-static-string" href="hkl/hkl-hkl-pseudoaxis-private.html#g-quark-from-static-string">
-<ANCHOR id="i" href="hkl/hkl-hkl-pseudoaxis-private.html#i">
-<ANCHOR id="self" href="hkl/hkl-hkl-pseudoaxis-private.html#self">
+<ANCHOR id="HKL-ENGINE-LIST-ERROR:CAPS" href="hkl/hkl-hkl-pseudoaxis-private.html#HKL-ENGINE-LIST-ERROR:CAPS">
+<ANCHOR id="HklEngineListError" href="hkl/hkl-hkl-pseudoaxis-private.html#HklEngineListError">
 <ANCHOR id="hkl-hkl-quaternion-private" href="hkl/hkl-hkl-quaternion-private.html">
-<ANCHOR id="hkl-hkl-quaternion-private.synopsis" href="hkl/hkl-hkl-quaternion-private.html#hkl-hkl-quaternion-private.synopsis">
+<ANCHOR id="hkl-hkl-quaternion-private.functions" href="hkl/hkl-hkl-quaternion-private.html#hkl-hkl-quaternion-private.functions">
 <ANCHOR id="hkl-hkl-quaternion-private.description" href="hkl/hkl-hkl-quaternion-private.html#hkl-hkl-quaternion-private.description">
-<ANCHOR id="hkl-hkl-quaternion-private.details" href="hkl/hkl-hkl-quaternion-private.html#hkl-hkl-quaternion-private.details">
-<ANCHOR id="hkl-quaternion-cmp" href="hkl/hkl-hkl-quaternion-private.html#hkl-quaternion-cmp">
-<ANCHOR id="hkl-quaternion-conjugate" href="hkl/hkl-hkl-quaternion-private.html#hkl-quaternion-conjugate">
+<ANCHOR id="hkl-hkl-quaternion-private.functions_details" href="hkl/hkl-hkl-quaternion-private.html#hkl-hkl-quaternion-private.functions_details">
 <ANCHOR id="hkl-quaternion-dup" href="hkl/hkl-hkl-quaternion-private.html#hkl-quaternion-dup">
-<ANCHOR id="hkl-quaternion-fprintf" href="hkl/hkl-hkl-quaternion-private.html#hkl-quaternion-fprintf">
 <ANCHOR id="hkl-quaternion-free" href="hkl/hkl-hkl-quaternion-private.html#hkl-quaternion-free">
 <ANCHOR id="hkl-quaternion-init" href="hkl/hkl-hkl-quaternion-private.html#hkl-quaternion-init">
-<ANCHOR id="hkl-quaternion-init-from-angle-and-axe" href="hkl/hkl-hkl-quaternion-private.html#hkl-quaternion-init-from-angle-and-axe">
 <ANCHOR id="hkl-quaternion-init-from-vector" href="hkl/hkl-hkl-quaternion-private.html#hkl-quaternion-init-from-vector">
+<ANCHOR id="hkl-quaternion-init-from-angle-and-axe" href="hkl/hkl-hkl-quaternion-private.html#hkl-quaternion-init-from-angle-and-axe">
+<ANCHOR id="hkl-quaternion-fprintf" href="hkl/hkl-hkl-quaternion-private.html#hkl-quaternion-fprintf">
+<ANCHOR id="hkl-quaternion-cmp" href="hkl/hkl-hkl-quaternion-private.html#hkl-quaternion-cmp">
 <ANCHOR id="hkl-quaternion-minus-quaternion" href="hkl/hkl-hkl-quaternion-private.html#hkl-quaternion-minus-quaternion">
-<ANCHOR id="hkl-quaternion-norm2" href="hkl/hkl-hkl-quaternion-private.html#hkl-quaternion-norm2">
 <ANCHOR id="hkl-quaternion-times-quaternion" href="hkl/hkl-hkl-quaternion-private.html#hkl-quaternion-times-quaternion">
-<ANCHOR id="hkl-quaternion-to-angle-and-axe" href="hkl/hkl-hkl-quaternion-private.html#hkl-quaternion-to-angle-and-axe">
+<ANCHOR id="hkl-quaternion-norm2" href="hkl/hkl-hkl-quaternion-private.html#hkl-quaternion-norm2">
+<ANCHOR id="hkl-quaternion-conjugate" href="hkl/hkl-hkl-quaternion-private.html#hkl-quaternion-conjugate">
 <ANCHOR id="hkl-quaternion-to-matrix" href="hkl/hkl-hkl-quaternion-private.html#hkl-quaternion-to-matrix">
+<ANCHOR id="hkl-quaternion-to-angle-and-axe" href="hkl/hkl-hkl-quaternion-private.html#hkl-quaternion-to-angle-and-axe">
+<ANCHOR id="hkl-hkl-quaternion-private.other_details" href="hkl/hkl-hkl-quaternion-private.html#hkl-hkl-quaternion-private.other_details">
 <ANCHOR id="hkl-hkl-sample-private" href="hkl/hkl-hkl-sample-private.html">
-<ANCHOR id="hkl-hkl-sample-private.synopsis" href="hkl/hkl-hkl-sample-private.html#hkl-hkl-sample-private.synopsis">
+<ANCHOR id="hkl-hkl-sample-private.functions" href="hkl/hkl-hkl-sample-private.html#hkl-hkl-sample-private.functions">
+<ANCHOR id="hkl-hkl-sample-private.other" href="hkl/hkl-hkl-sample-private.html#hkl-hkl-sample-private.other">
 <ANCHOR id="hkl-hkl-sample-private.description" href="hkl/hkl-hkl-sample-private.html#hkl-hkl-sample-private.description">
-<ANCHOR id="hkl-hkl-sample-private.details" href="hkl/hkl-hkl-sample-private.html#hkl-hkl-sample-private.details">
-<ANCHOR id="HKL-SAMPLE-ERROR:CAPS" href="hkl/hkl-hkl-sample-private.html#HKL-SAMPLE-ERROR:CAPS">
-<ANCHOR id="HKL-SAMPLE-REFLECTION-ERROR:CAPS" href="hkl/hkl-hkl-sample-private.html#HKL-SAMPLE-REFLECTION-ERROR:CAPS">
+<ANCHOR id="hkl-hkl-sample-private.functions_details" href="hkl/hkl-hkl-sample-private.html#hkl-hkl-sample-private.functions_details">
+<ANCHOR id="g-quark-from-static-string" href="hkl/hkl-hkl-sample-private.html#g-quark-from-static-string">
+<ANCHOR id="hkl-sample-fprintf" href="hkl/hkl-hkl-sample-private.html#hkl-sample-fprintf">
+<ANCHOR id="hkl-sample-reflection-new-copy" href="hkl/hkl-hkl-sample-private.html#hkl-sample-reflection-new-copy">
+<ANCHOR id="hkl-sample-reflection-free" href="hkl/hkl-hkl-sample-private.html#hkl-sample-reflection-free">
+<ANCHOR id="hkl-hkl-sample-private.other_details" href="hkl/hkl-hkl-sample-private.html#hkl-hkl-sample-private.other_details">
 <ANCHOR id="HklSample" href="hkl/hkl-hkl-sample-private.html#HklSample">
+<ANCHOR id="HKL-SAMPLE-ERROR:CAPS" href="hkl/hkl-hkl-sample-private.html#HKL-SAMPLE-ERROR:CAPS">
 <ANCHOR id="HklSampleError" href="hkl/hkl-hkl-sample-private.html#HklSampleError">
 <ANCHOR id="HklSampleReflection" href="hkl/hkl-hkl-sample-private.html#HklSampleReflection">
+<ANCHOR id="HKL-SAMPLE-REFLECTION-ERROR:CAPS" href="hkl/hkl-hkl-sample-private.html#HKL-SAMPLE-REFLECTION-ERROR:CAPS">
 <ANCHOR id="HklSampleReflectionError" href="hkl/hkl-hkl-sample-private.html#HklSampleReflectionError">
-<ANCHOR id="g-quark-from-static-string" href="hkl/hkl-hkl-sample-private.html#g-quark-from-static-string">
-<ANCHOR id="hkl-sample-fprintf" href="hkl/hkl-hkl-sample-private.html#hkl-sample-fprintf">
-<ANCHOR id="hkl-sample-reflection-free" href="hkl/hkl-hkl-sample-private.html#hkl-sample-reflection-free">
-<ANCHOR id="hkl-sample-reflection-new-copy" href="hkl/hkl-hkl-sample-private.html#hkl-sample-reflection-new-copy">
 <ANCHOR id="hkl-hkl-source-private" href="hkl/hkl-hkl-source-private.html">
-<ANCHOR id="hkl-hkl-source-private.synopsis" href="hkl/hkl-hkl-source-private.html#hkl-hkl-source-private.synopsis">
+<ANCHOR id="hkl-hkl-source-private.functions" href="hkl/hkl-hkl-source-private.html#hkl-hkl-source-private.functions">
+<ANCHOR id="hkl-hkl-source-private.other" href="hkl/hkl-hkl-source-private.html#hkl-hkl-source-private.other">
 <ANCHOR id="hkl-hkl-source-private.description" href="hkl/hkl-hkl-source-private.html#hkl-hkl-source-private.description">
-<ANCHOR id="hkl-hkl-source-private.details" href="hkl/hkl-hkl-source-private.html#hkl-hkl-source-private.details">
+<ANCHOR id="hkl-hkl-source-private.functions_details" href="hkl/hkl-hkl-source-private.html#hkl-hkl-source-private.functions_details">
 <ANCHOR id="HKL-SOURCE-DEFAULT-WAVE-LENGTH:CAPS" href="hkl/hkl-hkl-source-private.html#HKL-SOURCE-DEFAULT-WAVE-LENGTH:CAPS">
-<ANCHOR id="HklSource" href="hkl/hkl-hkl-source-private.html#HklSource">
-<ANCHOR id="hkl-source-cmp" href="hkl/hkl-hkl-source-private.html#hkl-source-cmp">
-<ANCHOR id="hkl-source-compute-ki" href="hkl/hkl-hkl-source-private.html#hkl-source-compute-ki">
 <ANCHOR id="hkl-source-dup" href="hkl/hkl-hkl-source-private.html#hkl-source-dup">
-<ANCHOR id="hkl-source-fprintf" href="hkl/hkl-hkl-source-private.html#hkl-source-fprintf">
 <ANCHOR id="hkl-source-free" href="hkl/hkl-hkl-source-private.html#hkl-source-free">
-<ANCHOR id="hkl-source-get-wavelength" href="hkl/hkl-hkl-source-private.html#hkl-source-get-wavelength">
 <ANCHOR id="hkl-source-init" href="hkl/hkl-hkl-source-private.html#hkl-source-init">
+<ANCHOR id="hkl-source-cmp" href="hkl/hkl-hkl-source-private.html#hkl-source-cmp">
+<ANCHOR id="hkl-source-compute-ki" href="hkl/hkl-hkl-source-private.html#hkl-source-compute-ki">
+<ANCHOR id="hkl-source-get-wavelength" href="hkl/hkl-hkl-source-private.html#hkl-source-get-wavelength">
+<ANCHOR id="hkl-source-fprintf" href="hkl/hkl-hkl-source-private.html#hkl-source-fprintf">
+<ANCHOR id="hkl-hkl-source-private.other_details" href="hkl/hkl-hkl-source-private.html#hkl-hkl-source-private.other_details">
+<ANCHOR id="HklSource" href="hkl/hkl-hkl-source-private.html#HklSource">
 <ANCHOR id="hkl-hkl-type-builtins" href="hkl/hkl-hkl-type-builtins.html">
-<ANCHOR id="hkl-hkl-type-builtins.synopsis" href="hkl/hkl-hkl-type-builtins.html#hkl-hkl-type-builtins.synopsis">
+<ANCHOR id="hkl-hkl-type-builtins.functions" href="hkl/hkl-hkl-type-builtins.html#hkl-hkl-type-builtins.functions">
 <ANCHOR id="hkl-hkl-type-builtins.description" href="hkl/hkl-hkl-type-builtins.html#hkl-hkl-type-builtins.description">
-<ANCHOR id="hkl-hkl-type-builtins.details" href="hkl/hkl-hkl-type-builtins.html#hkl-hkl-type-builtins.details">
+<ANCHOR id="hkl-hkl-type-builtins.functions_details" href="hkl/hkl-hkl-type-builtins.html#hkl-hkl-type-builtins.functions_details">
+<ANCHOR id="HKL-TYPE-UNIT-ENUM:CAPS" href="hkl/hkl-hkl-type-builtins.html#HKL-TYPE-UNIT-ENUM:CAPS">
 <ANCHOR id="HKL-TYPE-DETECTOR-TYPE:CAPS" href="hkl/hkl-hkl-type-builtins.html#HKL-TYPE-DETECTOR-TYPE:CAPS">
-<ANCHOR id="HKL-TYPE-ENGINE-AXIS-NAMES-GET:CAPS" href="hkl/hkl-hkl-type-builtins.html#HKL-TYPE-ENGINE-AXIS-NAMES-GET:CAPS">
 <ANCHOR id="HKL-TYPE-ENGINE-CAPABILITIES:CAPS" href="hkl/hkl-hkl-type-builtins.html#HKL-TYPE-ENGINE-CAPABILITIES:CAPS">
+<ANCHOR id="HKL-TYPE-ENGINE-AXIS-NAMES-GET:CAPS" href="hkl/hkl-hkl-type-builtins.html#HKL-TYPE-ENGINE-AXIS-NAMES-GET:CAPS">
 <ANCHOR id="HKL-TYPE-ENGINE-DEPENDENCIES:CAPS" href="hkl/hkl-hkl-type-builtins.html#HKL-TYPE-ENGINE-DEPENDENCIES:CAPS">
-<ANCHOR id="HKL-TYPE-UNIT-ENUM:CAPS" href="hkl/hkl-hkl-type-builtins.html#HKL-TYPE-UNIT-ENUM:CAPS">
+<ANCHOR id="hkl-hkl-type-builtins.other_details" href="hkl/hkl-hkl-type-builtins.html#hkl-hkl-type-builtins.other_details">
 <ANCHOR id="hkl-hkl-types" href="hkl/hkl-hkl-types.html">
-<ANCHOR id="hkl-hkl-types.synopsis" href="hkl/hkl-hkl-types.html#hkl-hkl-types.synopsis">
+<ANCHOR id="hkl-hkl-types.functions" href="hkl/hkl-hkl-types.html#hkl-hkl-types.functions">
 <ANCHOR id="hkl-hkl-types.description" href="hkl/hkl-hkl-types.html#hkl-hkl-types.description">
-<ANCHOR id="hkl-hkl-types.details" href="hkl/hkl-hkl-types.html#hkl-hkl-types.details">
+<ANCHOR id="hkl-hkl-types.functions_details" href="hkl/hkl-hkl-types.html#hkl-hkl-types.functions_details">
 <ANCHOR id="TYPE-HKL-DETECTOR:CAPS" href="hkl/hkl-hkl-types.html#TYPE-HKL-DETECTOR:CAPS">
 <ANCHOR id="TYPE-HKL-ENGINE:CAPS" href="hkl/hkl-hkl-types.html#TYPE-HKL-ENGINE:CAPS">
 <ANCHOR id="TYPE-HKL-ENGINE-LIST:CAPS" href="hkl/hkl-hkl-types.html#TYPE-HKL-ENGINE-LIST:CAPS">
@@ -434,118 +480,135 @@
 <ANCHOR id="TYPE-HKL-LATTICE:CAPS" href="hkl/hkl-hkl-types.html#TYPE-HKL-LATTICE:CAPS">
 <ANCHOR id="TYPE-HKL-MATRIX:CAPS" href="hkl/hkl-hkl-types.html#TYPE-HKL-MATRIX:CAPS">
 <ANCHOR id="TYPE-HKL-PARAMETER:CAPS" href="hkl/hkl-hkl-types.html#TYPE-HKL-PARAMETER:CAPS">
-<ANCHOR id="TYPE-HKL-SAMPLE:CAPS" href="hkl/hkl-hkl-types.html#TYPE-HKL-SAMPLE:CAPS">
 <ANCHOR id="TYPE-HKL-SAMPLE-REFLECTION:CAPS" href="hkl/hkl-hkl-types.html#TYPE-HKL-SAMPLE-REFLECTION:CAPS">
+<ANCHOR id="TYPE-HKL-SAMPLE:CAPS" href="hkl/hkl-hkl-types.html#TYPE-HKL-SAMPLE:CAPS">
 <ANCHOR id="TYPE-HKL-UNIT:CAPS" href="hkl/hkl-hkl-types.html#TYPE-HKL-UNIT:CAPS">
 <ANCHOR id="TYPE-HKL-VECTOR:CAPS" href="hkl/hkl-hkl-types.html#TYPE-HKL-VECTOR:CAPS">
+<ANCHOR id="hkl-hkl-types.other_details" href="hkl/hkl-hkl-types.html#hkl-hkl-types.other_details">
 <ANCHOR id="hkl-hkl-unit-private" href="hkl/hkl-hkl-unit-private.html">
-<ANCHOR id="hkl-hkl-unit-private.synopsis" href="hkl/hkl-hkl-unit-private.html#hkl-hkl-unit-private.synopsis">
+<ANCHOR id="hkl-hkl-unit-private.functions" href="hkl/hkl-hkl-unit-private.html#hkl-hkl-unit-private.functions">
+<ANCHOR id="hkl-hkl-unit-private.other" href="hkl/hkl-hkl-unit-private.html#hkl-hkl-unit-private.other">
 <ANCHOR id="hkl-hkl-unit-private.description" href="hkl/hkl-hkl-unit-private.html#hkl-hkl-unit-private.description">
-<ANCHOR id="hkl-hkl-unit-private.details" href="hkl/hkl-hkl-unit-private.html#hkl-hkl-unit-private.details">
-<ANCHOR id="HklUnit" href="hkl/hkl-hkl-unit-private.html#HklUnit">
-<ANCHOR id="HklUnitType" href="hkl/hkl-hkl-unit-private.html#HklUnitType">
-<ANCHOR id="hkl-unit-compatible" href="hkl/hkl-hkl-unit-private.html#hkl-unit-compatible">
+<ANCHOR id="hkl-hkl-unit-private.functions_details" href="hkl/hkl-hkl-unit-private.html#hkl-hkl-unit-private.functions_details">
 <ANCHOR id="hkl-unit-dup" href="hkl/hkl-hkl-unit-private.html#hkl-unit-dup">
-<ANCHOR id="hkl-unit-factor" href="hkl/hkl-hkl-unit-private.html#hkl-unit-factor">
 <ANCHOR id="hkl-unit-free" href="hkl/hkl-hkl-unit-private.html#hkl-unit-free">
+<ANCHOR id="hkl-unit-compatible" href="hkl/hkl-hkl-unit-private.html#hkl-unit-compatible">
+<ANCHOR id="hkl-unit-factor" href="hkl/hkl-hkl-unit-private.html#hkl-unit-factor">
+<ANCHOR id="hkl-hkl-unit-private.other_details" href="hkl/hkl-hkl-unit-private.html#hkl-hkl-unit-private.other_details">
+<ANCHOR id="HklUnitType" href="hkl/hkl-hkl-unit-private.html#HklUnitType">
+<ANCHOR id="HklUnit" href="hkl/hkl-hkl-unit-private.html#HklUnit">
 <ANCHOR id="hkl-hkl-vector-private" href="hkl/hkl-hkl-vector-private.html">
-<ANCHOR id="hkl-hkl-vector-private.synopsis" href="hkl/hkl-hkl-vector-private.html#hkl-hkl-vector-private.synopsis">
+<ANCHOR id="hkl-hkl-vector-private.functions" href="hkl/hkl-hkl-vector-private.html#hkl-hkl-vector-private.functions">
 <ANCHOR id="hkl-hkl-vector-private.description" href="hkl/hkl-hkl-vector-private.html#hkl-hkl-vector-private.description">
-<ANCHOR id="hkl-hkl-vector-private.details" href="hkl/hkl-hkl-vector-private.html#hkl-hkl-vector-private.details">
-<ANCHOR id="hkl-vector-add-vector" href="hkl/hkl-hkl-vector-private.html#hkl-vector-add-vector">
-<ANCHOR id="hkl-vector-angle" href="hkl/hkl-hkl-vector-private.html#hkl-vector-angle">
-<ANCHOR id="hkl-vector-cmp" href="hkl/hkl-hkl-vector-private.html#hkl-vector-cmp">
-<ANCHOR id="hkl-vector-div-double" href="hkl/hkl-hkl-vector-private.html#hkl-vector-div-double">
+<ANCHOR id="hkl-hkl-vector-private.functions_details" href="hkl/hkl-hkl-vector-private.html#hkl-hkl-vector-private.functions_details">
 <ANCHOR id="hkl-vector-dup" href="hkl/hkl-hkl-vector-private.html#hkl-vector-dup">
-<ANCHOR id="hkl-vector-fprintf" href="hkl/hkl-hkl-vector-private.html#hkl-vector-fprintf">
 <ANCHOR id="hkl-vector-free" href="hkl/hkl-hkl-vector-private.html#hkl-vector-free">
 <ANCHOR id="hkl-vector-init" href="hkl/hkl-hkl-vector-private.html#hkl-vector-init">
-<ANCHOR id="hkl-vector-is-colinear" href="hkl/hkl-hkl-vector-private.html#hkl-vector-is-colinear">
-<ANCHOR id="hkl-vector-is-null" href="hkl/hkl-hkl-vector-private.html#hkl-vector-is-null">
+<ANCHOR id="hkl-vector-fprintf" href="hkl/hkl-hkl-vector-private.html#hkl-vector-fprintf">
+<ANCHOR id="hkl-vector-cmp" href="hkl/hkl-hkl-vector-private.html#hkl-vector-cmp">
 <ANCHOR id="hkl-vector-is-opposite" href="hkl/hkl-hkl-vector-private.html#hkl-vector-is-opposite">
+<ANCHOR id="hkl-vector-add-vector" href="hkl/hkl-hkl-vector-private.html#hkl-vector-add-vector">
 <ANCHOR id="hkl-vector-minus-vector" href="hkl/hkl-hkl-vector-private.html#hkl-vector-minus-vector">
-<ANCHOR id="hkl-vector-norm2" href="hkl/hkl-hkl-vector-private.html#hkl-vector-norm2">
-<ANCHOR id="hkl-vector-normalize" href="hkl/hkl-hkl-vector-private.html#hkl-vector-normalize">
+<ANCHOR id="hkl-vector-div-double" href="hkl/hkl-hkl-vector-private.html#hkl-vector-div-double">
+<ANCHOR id="hkl-vector-times-double" href="hkl/hkl-hkl-vector-private.html#hkl-vector-times-double">
+<ANCHOR id="hkl-vector-times-vector" href="hkl/hkl-hkl-vector-private.html#hkl-vector-times-vector">
+<ANCHOR id="hkl-vector-times-matrix" href="hkl/hkl-hkl-vector-private.html#hkl-vector-times-matrix">
+<ANCHOR id="hkl-vector-sum" href="hkl/hkl-hkl-vector-private.html#hkl-vector-sum">
+<ANCHOR id="hkl-vector-scalar-product" href="hkl/hkl-hkl-vector-private.html#hkl-vector-scalar-product">
+<ANCHOR id="hkl-vector-vectorial-product" href="hkl/hkl-hkl-vector-private.html#hkl-vector-vectorial-product">
+<ANCHOR id="hkl-vector-angle" href="hkl/hkl-hkl-vector-private.html#hkl-vector-angle">
 <ANCHOR id="hkl-vector-oriented-angle" href="hkl/hkl-hkl-vector-private.html#hkl-vector-oriented-angle">
 <ANCHOR id="hkl-vector-oriented-angle-points" href="hkl/hkl-hkl-vector-private.html#hkl-vector-oriented-angle-points">
-<ANCHOR id="hkl-vector-project-on-plan" href="hkl/hkl-hkl-vector-private.html#hkl-vector-project-on-plan">
-<ANCHOR id="hkl-vector-project-on-plan-with-point" href="hkl/hkl-hkl-vector-private.html#hkl-vector-project-on-plan-with-point">
+<ANCHOR id="hkl-vector-norm2" href="hkl/hkl-hkl-vector-private.html#hkl-vector-norm2">
+<ANCHOR id="hkl-vector-normalize" href="hkl/hkl-hkl-vector-private.html#hkl-vector-normalize">
+<ANCHOR id="hkl-vector-is-colinear" href="hkl/hkl-hkl-vector-private.html#hkl-vector-is-colinear">
 <ANCHOR id="hkl-vector-randomize" href="hkl/hkl-hkl-vector-private.html#hkl-vector-randomize">
 <ANCHOR id="hkl-vector-randomize-vector" href="hkl/hkl-hkl-vector-private.html#hkl-vector-randomize-vector">
 <ANCHOR id="hkl-vector-randomize-vector-vector" href="hkl/hkl-hkl-vector-private.html#hkl-vector-randomize-vector-vector">
-<ANCHOR id="hkl-vector-rotated-around-line" href="hkl/hkl-hkl-vector-private.html#hkl-vector-rotated-around-line">
 <ANCHOR id="hkl-vector-rotated-around-vector" href="hkl/hkl-hkl-vector-private.html#hkl-vector-rotated-around-vector">
 <ANCHOR id="hkl-vector-rotated-quaternion" href="hkl/hkl-hkl-vector-private.html#hkl-vector-rotated-quaternion">
-<ANCHOR id="hkl-vector-scalar-product" href="hkl/hkl-hkl-vector-private.html#hkl-vector-scalar-product">
-<ANCHOR id="hkl-vector-sum" href="hkl/hkl-hkl-vector-private.html#hkl-vector-sum">
-<ANCHOR id="hkl-vector-times-double" href="hkl/hkl-hkl-vector-private.html#hkl-vector-times-double">
-<ANCHOR id="hkl-vector-times-matrix" href="hkl/hkl-hkl-vector-private.html#hkl-vector-times-matrix">
-<ANCHOR id="hkl-vector-times-vector" href="hkl/hkl-hkl-vector-private.html#hkl-vector-times-vector">
-<ANCHOR id="hkl-vector-vectorial-product" href="hkl/hkl-hkl-vector-private.html#hkl-vector-vectorial-product">
+<ANCHOR id="hkl-vector-rotated-around-line" href="hkl/hkl-hkl-vector-private.html#hkl-vector-rotated-around-line">
+<ANCHOR id="hkl-vector-is-null" href="hkl/hkl-hkl-vector-private.html#hkl-vector-is-null">
+<ANCHOR id="hkl-vector-project-on-plan" href="hkl/hkl-hkl-vector-private.html#hkl-vector-project-on-plan">
+<ANCHOR id="hkl-vector-project-on-plan-with-point" href="hkl/hkl-hkl-vector-private.html#hkl-vector-project-on-plan-with-point">
+<ANCHOR id="hkl-hkl-vector-private.other_details" href="hkl/hkl-hkl-vector-private.html#hkl-hkl-vector-private.other_details">
 <ANCHOR id="hkl-list" href="hkl/hkl-list.html">
-<ANCHOR id="hkl-list.synopsis" href="hkl/hkl-list.html#hkl-list.synopsis">
+<ANCHOR id="hkl-list.functions" href="hkl/hkl-list.html#hkl-list.functions">
+<ANCHOR id="hkl-list.other" href="hkl/hkl-list.html#hkl-list.other">
 <ANCHOR id="hkl-list.description" href="hkl/hkl-list.html#hkl-list.description">
-<ANCHOR id="hkl-list.details" href="hkl/hkl-list.html#hkl-list.details">
-<ANCHOR id="LIST-HEAD:CAPS" href="hkl/hkl-list.html#LIST-HEAD:CAPS">
-<ANCHOR id="LIST-HEAD-INIT:CAPS" href="hkl/hkl-list.html#LIST-HEAD-INIT:CAPS">
-<ANCHOR id="LIST-LOC:CAPS" href="hkl/hkl-list.html#LIST-LOC:CAPS">
-<ANCHOR id="list-add" href="hkl/hkl-list.html#list-add">
-<ANCHOR id="list-add-off" href="hkl/hkl-list.html#list-add-off">
-<ANCHOR id="list-add-tail" href="hkl/hkl-list.html#list-add-tail">
-<ANCHOR id="list-append-list" href="hkl/hkl-list.html#list-append-list">
+<ANCHOR id="hkl-list.functions_details" href="hkl/hkl-list.html#hkl-list.functions_details">
 <ANCHOR id="list-check" href="hkl/hkl-list.html#list-check">
 <ANCHOR id="list-check-node" href="hkl/hkl-list.html#list-check-node">
 <ANCHOR id="list-debug" href="hkl/hkl-list.html#list-debug">
 <ANCHOR id="list-debug-node" href="hkl/hkl-list.html#list-debug-node">
-<ANCHOR id="list-del" href="hkl/hkl-list.html#list-del">
-<ANCHOR id="list-del-from-off" href="hkl/hkl-list.html#list-del-from-off">
-<ANCHOR id="list-del-off" href="hkl/hkl-list.html#list-del-off">
+<ANCHOR id="LIST-HEAD-INIT:CAPS" href="hkl/hkl-list.html#LIST-HEAD-INIT:CAPS">
+<ANCHOR id="LIST-HEAD:CAPS" href="hkl/hkl-list.html#LIST-HEAD:CAPS">
+<ANCHOR id="list-add" href="hkl/hkl-list.html#list-add">
+<ANCHOR id="list-add-tail" href="hkl/hkl-list.html#list-add-tail">
 <ANCHOR id="list-empty" href="hkl/hkl-list.html#list-empty">
 <ANCHOR id="list-empty-nodebug" href="hkl/hkl-list.html#list-empty-nodebug">
+<ANCHOR id="list-del" href="hkl/hkl-list.html#list-del">
 <ANCHOR id="list-entry" href="hkl/hkl-list.html#list-entry">
-<ANCHOR id="list-entry-off" href="hkl/hkl-list.html#list-entry-off">
+<ANCHOR id="list-top" href="hkl/hkl-list.html#list-top">
+<ANCHOR id="list-pop" href="hkl/hkl-list.html#list-pop">
+<ANCHOR id="list-tail" href="hkl/hkl-list.html#list-tail">
 <ANCHOR id="list-for-each" href="hkl/hkl-list.html#list-for-each">
-<ANCHOR id="list-for-each-off" href="hkl/hkl-list.html#list-for-each-off">
 <ANCHOR id="list-for-each-rev" href="hkl/hkl-list.html#list-for-each-rev">
 <ANCHOR id="list-for-each-safe" href="hkl/hkl-list.html#list-for-each-safe">
+<ANCHOR id="list-next" href="hkl/hkl-list.html#list-next">
+<ANCHOR id="list-prev" href="hkl/hkl-list.html#list-prev">
+<ANCHOR id="list-append-list" href="hkl/hkl-list.html#list-append-list">
+<ANCHOR id="list-prepend-list" href="hkl/hkl-list.html#list-prepend-list">
+<ANCHOR id="list-for-each-off" href="hkl/hkl-list.html#list-for-each-off">
 <ANCHOR id="list-for-each-safe-off" href="hkl/hkl-list.html#list-for-each-safe-off">
+<ANCHOR id="list-entry-off" href="hkl/hkl-list.html#list-entry-off">
 <ANCHOR id="list-head-off" href="hkl/hkl-list.html#list-head-off">
-<ANCHOR id="list-next" href="hkl/hkl-list.html#list-next">
+<ANCHOR id="list-tail-off" href="hkl/hkl-list.html#list-tail-off">
+<ANCHOR id="list-add-off" href="hkl/hkl-list.html#list-add-off">
+<ANCHOR id="list-del-off" href="hkl/hkl-list.html#list-del-off">
+<ANCHOR id="list-del-from-off" href="hkl/hkl-list.html#list-del-from-off">
 <ANCHOR id="list-off-" href="hkl/hkl-list.html#list-off-">
 <ANCHOR id="list-off-var-" href="hkl/hkl-list.html#list-off-var-">
-<ANCHOR id="list-pop" href="hkl/hkl-list.html#list-pop">
-<ANCHOR id="list-prepend-list" href="hkl/hkl-list.html#list-prepend-list">
-<ANCHOR id="list-prev" href="hkl/hkl-list.html#list-prev">
-<ANCHOR id="list-tail" href="hkl/hkl-list.html#list-tail">
-<ANCHOR id="list-tail-off" href="hkl/hkl-list.html#list-tail-off">
-<ANCHOR id="list-top" href="hkl/hkl-list.html#list-top">
 <ANCHOR id="list-typeof" href="hkl/hkl-list.html#list-typeof">
+<ANCHOR id="hkl-list.other_details" href="hkl/hkl-list.html#hkl-list.other_details">
+<ANCHOR id="list-node" href="hkl/hkl-list.html#list-node">
+<ANCHOR id="list-head" href="hkl/hkl-list.html#list-head">
+<ANCHOR id="LIST-LOC:CAPS" href="hkl/hkl-list.html#LIST-LOC:CAPS">
 <ANCHOR id="hkl-noerr" href="hkl/hkl-noerr.html">
-<ANCHOR id="hkl-noerr.synopsis" href="hkl/hkl-noerr.html#hkl-noerr.synopsis">
+<ANCHOR id="hkl-noerr.functions" href="hkl/hkl-noerr.html#hkl-noerr.functions">
 <ANCHOR id="hkl-noerr.description" href="hkl/hkl-noerr.html#hkl-noerr.description">
-<ANCHOR id="hkl-noerr.details" href="hkl/hkl-noerr.html#hkl-noerr.details">
+<ANCHOR id="hkl-noerr.functions_details" href="hkl/hkl-noerr.html#hkl-noerr.functions_details">
 <ANCHOR id="close-noerr" href="hkl/hkl-noerr.html#close-noerr">
 <ANCHOR id="fclose-noerr" href="hkl/hkl-noerr.html#fclose-noerr">
 <ANCHOR id="unlink-noerr" href="hkl/hkl-noerr.html#unlink-noerr">
+<ANCHOR id="hkl-noerr.other_details" href="hkl/hkl-noerr.html#hkl-noerr.other_details">
 <ANCHOR id="hkl-ptr-valid" href="hkl/hkl-ptr-valid.html">
-<ANCHOR id="hkl-ptr-valid.synopsis" href="hkl/hkl-ptr-valid.html#hkl-ptr-valid.synopsis">
+<ANCHOR id="hkl-ptr-valid.functions" href="hkl/hkl-ptr-valid.html#hkl-ptr-valid.functions">
+<ANCHOR id="hkl-ptr-valid.other" href="hkl/hkl-ptr-valid.html#hkl-ptr-valid.other">
 <ANCHOR id="hkl-ptr-valid.description" href="hkl/hkl-ptr-valid.html#hkl-ptr-valid.description">
-<ANCHOR id="hkl-ptr-valid.details" href="hkl/hkl-ptr-valid.html#hkl-ptr-valid.details">
-<ANCHOR id="PTR-VALID-ALIGNOF:CAPS" href="hkl/hkl-ptr-valid.html#PTR-VALID-ALIGNOF:CAPS">
+<ANCHOR id="hkl-ptr-valid.functions_details" href="hkl/hkl-ptr-valid.html#hkl-ptr-valid.functions_details">
+<ANCHOR id="ptr-valid-read" href="hkl/hkl-ptr-valid.html#ptr-valid-read">
+<ANCHOR id="ptr-valid-write" href="hkl/hkl-ptr-valid.html#ptr-valid-write">
+<ANCHOR id="ptr-valid-string" href="hkl/hkl-ptr-valid.html#ptr-valid-string">
 <ANCHOR id="ptr-valid" href="hkl/hkl-ptr-valid.html#ptr-valid">
-<ANCHOR id="ptr-valid-batch" href="hkl/hkl-ptr-valid.html#ptr-valid-batch">
-<ANCHOR id="ptr-valid-batch-end" href="hkl/hkl-ptr-valid.html#ptr-valid-batch-end">
-<ANCHOR id="ptr-valid-batch-read" href="hkl/hkl-ptr-valid.html#ptr-valid-batch-read">
 <ANCHOR id="ptr-valid-batch-start" href="hkl/hkl-ptr-valid.html#ptr-valid-batch-start">
-<ANCHOR id="ptr-valid-batch-string" href="hkl/hkl-ptr-valid.html#ptr-valid-batch-string">
+<ANCHOR id="ptr-valid-batch-read" href="hkl/hkl-ptr-valid.html#ptr-valid-batch-read">
 <ANCHOR id="ptr-valid-batch-write" href="hkl/hkl-ptr-valid.html#ptr-valid-batch-write">
-<ANCHOR id="ptr-valid-read" href="hkl/hkl-ptr-valid.html#ptr-valid-read">
-<ANCHOR id="ptr-valid-string" href="hkl/hkl-ptr-valid.html#ptr-valid-string">
-<ANCHOR id="ptr-valid-write" href="hkl/hkl-ptr-valid.html#ptr-valid-write">
+<ANCHOR id="ptr-valid-batch-string" href="hkl/hkl-ptr-valid.html#ptr-valid-batch-string">
+<ANCHOR id="ptr-valid-batch-end" href="hkl/hkl-ptr-valid.html#ptr-valid-batch-end">
+<ANCHOR id="PTR-VALID-ALIGNOF:CAPS" href="hkl/hkl-ptr-valid.html#PTR-VALID-ALIGNOF:CAPS">
+<ANCHOR id="hkl-ptr-valid.other_details" href="hkl/hkl-ptr-valid.html#hkl-ptr-valid.other_details">
+<ANCHOR id="ptr-valid-batch" href="hkl/hkl-ptr-valid.html#ptr-valid-batch">
+<ANCHOR id="ptr-valid-map" href="hkl/hkl-ptr-valid.html#ptr-valid-map">
 <ANCHOR id="hkl-str" href="hkl/hkl-str.html">
-<ANCHOR id="hkl-str.synopsis" href="hkl/hkl-str.html#hkl-str.synopsis">
+<ANCHOR id="hkl-str.functions" href="hkl/hkl-str.html#hkl-str.functions">
 <ANCHOR id="hkl-str.description" href="hkl/hkl-str.html#hkl-str.description">
-<ANCHOR id="hkl-str.details" href="hkl/hkl-str.html#hkl-str.details">
+<ANCHOR id="hkl-str.functions_details" href="hkl/hkl-str.html#hkl-str.functions_details">
+<ANCHOR id="streq" href="hkl/hkl-str.html#streq">
+<ANCHOR id="strstarts" href="hkl/hkl-str.html#strstarts">
+<ANCHOR id="stringify" href="hkl/hkl-str.html#stringify">
+<ANCHOR id="stringify-1" href="hkl/hkl-str.html#stringify-1">
+<ANCHOR id="strcount" href="hkl/hkl-str.html#strcount">
 <ANCHOR id="STR-MAX-CHARS:CAPS" href="hkl/hkl-str.html#STR-MAX-CHARS:CAPS">
 <ANCHOR id="STR-MAX-CHARS-TCHECK-:CAPS" href="hkl/hkl-str.html#STR-MAX-CHARS-TCHECK-:CAPS">
 <ANCHOR id="isalnum" href="hkl/hkl-str.html#isalnum">
@@ -562,18 +625,14 @@
 <ANCHOR id="isupper" href="hkl/hkl-str.html#isupper">
 <ANCHOR id="isxdigit" href="hkl/hkl-str.html#isxdigit">
 <ANCHOR id="str-check-arg-" href="hkl/hkl-str.html#str-check-arg-">
+<ANCHOR id="strstr" href="hkl/hkl-str.html#strstr">
 <ANCHOR id="strchr" href="hkl/hkl-str.html#strchr">
-<ANCHOR id="strcount" href="hkl/hkl-str.html#strcount">
-<ANCHOR id="streq" href="hkl/hkl-str.html#streq">
-<ANCHOR id="stringify" href="hkl/hkl-str.html#stringify">
-<ANCHOR id="stringify-1" href="hkl/hkl-str.html#stringify-1">
 <ANCHOR id="strrchr" href="hkl/hkl-str.html#strrchr">
-<ANCHOR id="strstarts" href="hkl/hkl-str.html#strstarts">
-<ANCHOR id="strstr" href="hkl/hkl-str.html#strstr">
+<ANCHOR id="hkl-str.other_details" href="hkl/hkl-str.html#hkl-str.other_details">
 <ANCHOR id="hkl-str-debug" href="hkl/hkl-str-debug.html">
-<ANCHOR id="hkl-str-debug.synopsis" href="hkl/hkl-str-debug.html#hkl-str-debug.synopsis">
+<ANCHOR id="hkl-str-debug.functions" href="hkl/hkl-str-debug.html#hkl-str-debug.functions">
 <ANCHOR id="hkl-str-debug.description" href="hkl/hkl-str-debug.html#hkl-str-debug.description">
-<ANCHOR id="hkl-str-debug.details" href="hkl/hkl-str-debug.html#hkl-str-debug.details">
+<ANCHOR id="hkl-str-debug.functions_details" href="hkl/hkl-str-debug.html#hkl-str-debug.functions_details">
 <ANCHOR id="str-isalnum" href="hkl/hkl-str-debug.html#str-isalnum">
 <ANCHOR id="str-isalpha" href="hkl/hkl-str-debug.html#str-isalpha">
 <ANCHOR id="str-isascii" href="hkl/hkl-str-debug.html#str-isascii">
@@ -587,10 +646,10 @@
 <ANCHOR id="str-isspace" href="hkl/hkl-str-debug.html#str-isspace">
 <ANCHOR id="str-isupper" href="hkl/hkl-str-debug.html#str-isupper">
 <ANCHOR id="str-isxdigit" href="hkl/hkl-str-debug.html#str-isxdigit">
+<ANCHOR id="str-strstr" href="hkl/hkl-str-debug.html#str-strstr">
 <ANCHOR id="str-strchr" href="hkl/hkl-str-debug.html#str-strchr">
 <ANCHOR id="str-strrchr" href="hkl/hkl-str-debug.html#str-strrchr">
-<ANCHOR id="str-strstr" href="hkl/hkl-str-debug.html#str-strstr">
-<ANCHOR id="annotation-glossterm-out" href="hkl/annotation-glossary.html#annotation-glossterm-out">
+<ANCHOR id="hkl-str-debug.other_details" href="hkl/hkl-str-debug.html#hkl-str-debug.other_details">
 <ANCHOR id="annotation-glossterm-in" href="hkl/annotation-glossary.html#annotation-glossterm-in">
-<ANCHOR id="annotation-glossterm-transfer full" href="hkl/annotation-glossary.html#annotation-glossterm-transfer full">
+<ANCHOR id="annotation-glossterm-out caller-allocates" href="hkl/annotation-glossary.html#annotation-glossterm-out caller-allocates">
 <ANCHOR id="annotation-glossterm-transfer none" href="hkl/annotation-glossary.html#annotation-glossterm-transfer none">
diff --git a/Documentation/api/html/left-insensitive.png b/Documentation/api/html/left-insensitive.png
new file mode 100644
index 0000000..3269393
Binary files /dev/null and b/Documentation/api/html/left-insensitive.png differ
diff --git a/Documentation/api/html/left.png b/Documentation/api/html/left.png
index 2d05b3d..2abde03 100644
Binary files a/Documentation/api/html/left.png and b/Documentation/api/html/left.png differ
diff --git a/Documentation/api/html/object-tree.html b/Documentation/api/html/object-tree.html
index 3f8c513..d847291 100644
--- a/Documentation/api/html/object-tree.html
+++ b/Documentation/api/html/object-tree.html
@@ -2,31 +2,32 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Object Hierarchy</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<title>hkl Reference Manual: Object Hierarchy</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="hkl Reference Manual">
 <link rel="up" href="index.html" title="hkl Reference Manual">
 <link rel="prev" href="hkl-str-debug.html" title="str_debug">
 <link rel="next" href="api-index-full.html" title="API Index">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle">
-<td><a accesskey="p" href="hkl-str-debug.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td> </td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">hkl Reference Manual</th>
-<td><a accesskey="n" href="api-index-full.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts"></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><img src="up-insensitive.png" width="16" height="16" border="0"></td>
+<td><a accesskey="p" href="hkl-str-debug.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="api-index-full.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="chapter">
-<div class="titlepage"><div><div><h2 class="title">
-<a name="object-tree"></a>Object Hierarchy</h2></div></div></div>
+<div class="titlepage"><div><div><h1 class="title">
+<a name="object-tree"></a>Object Hierarchy</h1></div></div></div>
 <pre class="screen">
+
 </pre>
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.21</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/Documentation/api/html/right-insensitive.png b/Documentation/api/html/right-insensitive.png
new file mode 100644
index 0000000..4c95785
Binary files /dev/null and b/Documentation/api/html/right-insensitive.png differ
diff --git a/Documentation/api/html/right.png b/Documentation/api/html/right.png
index 92832e3..76260ec 100644
Binary files a/Documentation/api/html/right.png and b/Documentation/api/html/right.png differ
diff --git a/Documentation/api/html/style.css b/Documentation/api/html/style.css
index d6f6c26..c141ddd 100644
--- a/Documentation/api/html/style.css
+++ b/Documentation/api/html/style.css
@@ -1,15 +1,23 @@
+body
+{
+  font-family: cantarell, sans-serif;
+}
 .synopsis, .classsynopsis
 {
   /* tango:aluminium 1/2 */
   background: #eeeeec;
-  border: solid 1px #d3d7cf;
+  background: rgba(238, 238, 236, 0.5);
+  border: solid 1px rgb(238, 238, 236);
   padding: 0.5em;
 }
 .programlisting
 {
   /* tango:sky blue 0/1 */
+  /* fallback for no rgba support */
   background: #e6f3ff;
   border: solid 1px #729fcf;
+  background: rgba(114, 159, 207, 0.1);
+  border: solid 1px rgba(114, 159, 207, 0.2);
   padding: 0.5em;
 }
 .variablelist
@@ -22,89 +30,6 @@
   vertical-align: top;
 }
 
- at media screen {
-  sup a.footnote
-  {
-    position: relative;
-    top: 0em ! important;
-    
-  }
-  /* this is needed so that the local anchors are displayed below the naviagtion */
-  div.footnote a[name], div.refnamediv a[name], div.refsect1 a[name], div.refsect2 a[name], div.index a[name], div.glossary a[name], div.sect1 a[name]
-  {
-    display: inline-block;
-    position: relative;
-    top:-5em;
-  }
-  /* this seems to be a bug in the xsl style sheets when generating indexes */
-  div.index div.index
-  {
-    top: 0em;
-  }
-  /* make space for the fixed navigation bar and add space at the bottom so that
-   * link targets appear somewhat close to top
-   */
-  body
-  {
-    padding-top: 3.2em;
-    padding-bottom: 20em;
-  }
-  /* style and size the navigation bar */
-  table.navigation#top
-  {
-    position: fixed;
-    /* tango:scarlet red 0/1 */
-    background: #ffe6e6;
-    border: solid 1px #ef2929;
-    margin-top: 0;
-    margin-bottom: 0;
-    top: 0;
-    left: 0;
-    height: 3em;
-    z-index: 10;
-  }
-  .navigation a, .navigation a:visited
-  {
-    /* tango:scarlet red 3 */
-    color: #a40000;
-  }
-  .navigation a:hover
-  {
-    /* tango:scarlet red 1 */
-    color: #ef2929;
-  }
-  td.shortcuts
-  {
-    /* tango:scarlet red 1 */
-    color: #ef2929;
-    font-size: 80%;
-    white-space: nowrap;
-  }
-}
- at media print {
-  table.navigation {
-    visibility: collapse;
-    display: none;
-  }
-  div.titlepage table.navigation {
-    visibility: visible;
-    display: table;
-    /* tango:scarlet red 0/1 */
-    background: #ffe6e6;
-    border: solid 1px #ef2929;
-    margin-top: 0;
-    margin-bottom: 0;
-    top: 0;
-    left: 0;
-    height: 3em;
-  }
-}
-
-.navigation .title
-{
-  font-size: 200%;
-}
-
 div.gallery-float
 {
   float: left;
@@ -132,6 +57,72 @@ a:hover
   color: #729fcf;
 }
 
+div.informaltable table
+{
+  border-collapse: separate;
+  border-spacing: 1em 0.5em;
+  border: none;
+}
+
+div.informaltable table td, div.informaltable table th
+{
+  vertical-align: top;
+}
+
+.function_type,
+.variable_type,
+.property_type,
+.signal_type,
+.parameter_name,
+.struct_member_name,
+.union_member_name,
+.define_keyword,
+.datatype_keyword,
+.typedef_keyword
+{
+  text-align: right;
+}
+
+/* dim non-primary columns */
+.c_punctuation,
+.function_type,
+.variable_type,
+.property_type,
+.signal_type,
+.define_keyword,
+.datatype_keyword,
+.typedef_keyword,
+.property_flags,
+.signal_flags,
+.parameter_annotations,
+.enum_member_annotations,
+.struct_member_annotations,
+.union_member_annotations
+{
+  color: #888a85;
+}
+
+.function_type a,
+.function_type a:visited,
+.function_type a:hover,
+.property_type a,
+.property_type a:visited,
+.property_type a:hover,
+.signal_type a,
+.signal_type a:visited,
+.signal_type a:hover,
+.signal_flags a,
+.signal_flags a:visited,
+.signal_flags a:hover
+{
+ color: #729fcf;
+}
+
+td p
+{
+  margin: 0.25em;
+}
+
 div.table table
 {
   border-collapse: collapse;
@@ -154,14 +145,43 @@ div.table table th
   background-color: #d3d7cf;
 }
 
+h4
+{
+  color: #555753;
+}
+
 hr
 {
-  /* tango:aluminium 3 */
-  color: #babdb6;
-  background: #babdb6;
+  /* tango:aluminium 1 */
+  color: #d3d7cf;
+  background: #d3d7cf;
   border: none 0px;
   height: 1px;
   clear: both;
+  margin: 2.0em 0em 2.0em 0em;
+}
+
+dl.toc dt
+{
+  padding-bottom: 0.25em;
+}
+
+dl.toc > dd > dl > dt
+{
+  padding-top: 0.25em;
+  padding-bottom: 0.25em;
+}
+
+dl.toc > dt
+{
+  padding-top: 1em;
+  padding-bottom: 0.5em;
+  font-weight: bold;
+}
+
+.parameter
+{
+  font-style: normal;
 }
 
 .footer
@@ -173,31 +193,70 @@ hr
   font-size: 80%;
 }
 
+.informalfigure,
+.figure
+{
+  margin: 1em;
+}
+
+.informalexample,
+.example
+{
+  margin-top: 1em;
+  margin-bottom: 1em;
+}
+
 .warning
 {
   /* tango:orange 0/1 */
   background: #ffeed9;
+  background: rgba(252, 175, 62, 0.1);
   border-color: #ffb04f;
+  border-color: rgba(252, 175, 62, 0.2);
 }
 .note
 {
   /* tango:chameleon 0/0.5 */
   background: #d8ffb2;
+  background: rgba(138, 226, 52, 0.1);
   border-color: #abf562;
+  border-color: rgba(138, 226, 52, 0.2);
 }
-.note, .warning
+div.blockquote
+{
+  border-color: #eeeeec;
+}
+.note, .warning, div.blockquote
 {
   padding: 0.5em;
   border-width: 1px;
   border-style: solid;
+  margin: 2em;
 }
-.note h3, .warning h3
+.note p, .warning p
 {
-  margin-top: 0.0em
+  margin: 0;
 }
-.note p, .warning p
+
+div.warning h3.title,
+div.note h3.title
+{
+  display: none;
+}
+
+p + div.section
 {
-  margin-bottom: 0.0em
+  margin-top: 1em;
+}
+
+div.refnamediv,
+div.refsynopsisdiv,
+div.refsect1,
+div.refsect2,
+div.toc,
+div.section
+{
+  margin-bottom: 1em;
 }
 
 /* blob links */
@@ -210,33 +269,52 @@ h2 .extralinks, h3 .extralinks
   font-weight: normal;
 }
 
+.lineart
+{
+  color: #d3d7cf;
+  font-weight: normal;
+}
+
 .annotation
 {
   /* tango:aluminium 5 */
   color: #555753;
-  font-size: 80%;
   font-weight: normal;
 }
 
+.structfield
+{
+  font-style: normal;
+  font-weight: normal;
+}
+
+acronym,abbr 
+{
+  border-bottom: 1px dotted gray;
+}
+
 /* code listings */
 
-.listing_code .programlisting .cbracket   { color: #a40000; } /* tango: scarlet red 3 */
-.listing_code .programlisting .comment    { color: #a1a39d; } /* tango: aluminium 4 */
-.listing_code .programlisting .function   { color: #000000; font-weight: bold; }
-.listing_code .programlisting .function a { color: #11326b; font-weight: bold; } /* tango: sky blue 4 */
-.listing_code .programlisting .keyword    { color: #4e9a06; } /* tango: chameleon 3  */
+.listing_code .programlisting .normal,
+.listing_code .programlisting .normal a,
+.listing_code .programlisting .number,
+.listing_code .programlisting .cbracket,
+.listing_code .programlisting .symbol     { color: #555753; }
+.listing_code .programlisting .comment,
 .listing_code .programlisting .linenum    { color: #babdb6; } /* tango: aluminium 3 */
-.listing_code .programlisting .normal     { color: #000000; }
-.listing_code .programlisting .number     { color: #75507b; } /* tango: plum 2 */
+.listing_code .programlisting .function,
+.listing_code .programlisting .function a,
 .listing_code .programlisting .preproc    { color: #204a87; } /* tango: sky blue 3  */
-.listing_code .programlisting .string     { color: #c17d11; } /* tango: chocolate 2 */
-.listing_code .programlisting .type       { color: #000000; }
-.listing_code .programlisting .type a     { color: #11326b; } /* tango: sky blue 4 */
-.listing_code .programlisting .symbol     { color: #ce5c00; } /* tango: orange 3 */
+.listing_code .programlisting .string     { color: #ad7fa8; } /* tango: plum */
+.listing_code .programlisting .keyword,
+.listing_code .programlisting .usertype,
+.listing_code .programlisting .type,
+.listing_code .programlisting .type a     { color: #4e9a06; } /* tango: chameleon 3  */
 
 .listing_frame {
   /* tango:sky blue 1 */
   border: solid 1px #729fcf;
+  border: solid 1px rgba(114, 159, 207, 0.2);
   padding: 0px;
 }
 
@@ -248,19 +326,151 @@ h2 .extralinks, h3 .extralinks
 .listing_lines {
   /* tango:sky blue 0.5 */
   background: #a6c5e3;
+  background: rgba(114, 159, 207, 0.2);
   /* tango:aluminium 6 */
   color: #2e3436;
 }
 .listing_code {
   /* tango:sky blue 0 */
   background: #e6f3ff;
+  background: rgba(114, 159, 207, 0.1);
 }
 .listing_code .programlisting {
   /* override from previous */
   border: none 0px;
   padding: 0px;
+  background: none;
 }
 .listing_lines pre, .listing_code pre {
   margin: 0px;
 }
 
+ at media screen {
+  sup a.footnote
+  {
+    position: relative;
+    top: 0em ! important;
+  }
+  /* this is needed so that the local anchors are displayed below the naviagtion */
+  div.footnote a[name], div.refnamediv a[name], div.refsect1 a[name], div.refsect2 a[name], div.index a[name], div.glossary a[name], div.sect1 a[name]
+  {
+    display: inline-block;
+    position: relative;
+    top:-5em;
+  }
+  /* this seems to be a bug in the xsl style sheets when generating indexes */
+  div.index div.index
+  {
+    top: 0em;
+  }
+  /* make space for the fixed navigation bar and add space at the bottom so that
+   * link targets appear somewhat close to top
+   */
+  body
+  {
+    padding-top: 2.5em;
+    padding-bottom: 500px;
+    max-width: 60em;
+  }
+  p
+  {
+    max-width: 60em;
+  }
+  /* style and size the navigation bar */
+  table.navigation#top
+  {
+    position: fixed;
+    background: #e2e2e2;
+    border-bottom: solid 1px #babdb6;
+    border-spacing: 5px;
+    margin-top: 0;
+    margin-bottom: 0;
+    top: 0;
+    left: 0;
+    z-index: 10;
+  }
+  table.navigation#top td
+  {
+    padding-left: 6px;
+    padding-right: 6px;
+  }
+  .navigation a, .navigation a:visited
+  {
+    /* tango:sky blue 3 */
+    color: #204a87;
+  }
+  .navigation a:hover
+  {
+    /* tango:sky blue 2 */
+    color: #3465a4;
+  }
+  td.shortcuts
+  {
+    /* tango:sky blue 2 */
+    color: #3465a4;
+    font-size: 80%;
+    white-space: nowrap;
+  }
+  td.shortcuts .dim
+  {
+    color: #babdb6;
+  }
+  .navigation .title
+  {
+    font-size: 80%;
+    max-width: none;
+    margin: 0px;
+    font-weight: normal;
+  }
+}
+ at media screen and (min-width: 60em) {
+  /* screen larger than 60em */
+  body { margin: auto; }
+}
+ at media screen and (max-width: 60em) {
+  /* screen less than 60em */
+  #nav_hierarchy { display: none; }
+  #nav_interfaces { display: none; }
+  #nav_prerequisites { display: none; }
+  #nav_derived_interfaces { display: none; }
+  #nav_implementations { display: none; }
+  #nav_child_properties { display: none; }
+  #nav_style_properties { display: none; }
+  #nav_index { display: none; }
+  #nav_glossary { display: none; }
+  .gallery_image { display: none; }
+  .property_flags { display: none; }
+  .signal_flags { display: none; }
+  .parameter_annotations { display: none; }
+  .enum_member_annotations { display: none; }
+  .struct_member_annotations { display: none; }
+  .union_member_annotations { display: none; }
+  /* now that a column is hidden, optimize space */
+  col.parameters_name { width: auto; }
+  col.parameters_description { width: auto; }
+  col.struct_members_name { width: auto; }
+  col.struct_members_description { width: auto; }
+  col.enum_members_name { width: auto; }
+  col.enum_members_description { width: auto; }
+  col.union_members_name { width: auto; }
+  col.union_members_description { width: auto; }
+  .listing_lines { display: none; }
+}
+ at media print {
+  table.navigation {
+    visibility: collapse;
+    display: none;
+  }
+  div.titlepage table.navigation {
+    visibility: visible;
+    display: table;
+    background: #e2e2e2;
+    border: solid 1px #babdb6;
+    margin-top: 0;
+    margin-bottom: 0;
+    top: 0;
+    left: 0;
+    height: 3em;
+  }
+}
+
diff --git a/Documentation/api/html/up-insensitive.png b/Documentation/api/html/up-insensitive.png
new file mode 100644
index 0000000..f404986
Binary files /dev/null and b/Documentation/api/html/up-insensitive.png differ
diff --git a/Documentation/api/html/up.png b/Documentation/api/html/up.png
index 85b3e2a..80b4b37 100644
Binary files a/Documentation/api/html/up.png and b/Documentation/api/html/up.png differ
diff --git a/Documentation/figures/Makefile.in b/Documentation/figures/Makefile.in
index b428db8..ddae3b1 100644
--- a/Documentation/figures/Makefile.in
+++ b/Documentation/figures/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.14.1 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
-# Foundation, Inc.
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -16,23 +15,51 @@
 @SET_MAKE@
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
+    esac; \
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -52,8 +79,8 @@ POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
 subdir = Documentation/figures
-DIST_COMMON = $(dist_noinst_DATA) $(srcdir)/Makefile.am \
-	$(srcdir)/Makefile.in
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+	$(dist_noinst_DATA)
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/m4/gtk-doc.m4 \
 	$(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
@@ -65,12 +92,18 @@ mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
 CONFIG_CLEAN_VPATH_FILES =
+AM_V_P = $(am__v_P_ at AM_V@)
+am__v_P_ = $(am__v_P_ at AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
 AM_V_GEN = $(am__v_GEN_ at AM_V@)
 am__v_GEN_ = $(am__v_GEN_ at AM_DEFAULT_V@)
-am__v_GEN_0 = @echo "  GEN   " $@;
+am__v_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
 AM_V_at = $(am__v_at_ at AM_V@)
 am__v_at_ = $(am__v_at_ at AM_DEFAULT_V@)
 am__v_at_0 = @
+am__v_at_1 = 
 SOURCES =
 DIST_SOURCES =
 am__can_run_installinfo = \
@@ -79,6 +112,7 @@ am__can_run_installinfo = \
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
 DATA = $(dist_noinst_DATA)
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ALLOCA = @ALLOCA@
@@ -131,6 +165,7 @@ GSL_CFLAGS = @GSL_CFLAGS@
 GSL_CONFIG = @GSL_CONFIG@
 GSL_LIBS = @GSL_LIBS@
 GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_CHECK_PATH = @GTKDOC_CHECK_PATH@
 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
 GTKDOC_MKPDF = @GTKDOC_MKPDF@
@@ -333,11 +368,11 @@ mostlyclean-libtool:
 
 clean-libtool:
 	-rm -rf .libs _libs
-tags: TAGS
-TAGS:
+tags TAGS:
+
+ctags CTAGS:
 
-ctags: CTAGS
-CTAGS:
+cscope cscopelist:
 
 
 distdir: $(DISTFILES)
@@ -474,15 +509,16 @@ uninstall-am:
 .MAKE: install-am install-strip
 
 .PHONY: all all-am check check-am clean clean-generic clean-libtool \
-	distclean distclean-generic distclean-libtool distdir dvi \
-	dvi-am html html-am info info-am install install-am \
-	install-data install-data-am install-dvi install-dvi-am \
-	install-exec install-exec-am install-html install-html-am \
-	install-info install-info-am install-man install-pdf \
-	install-pdf-am install-ps install-ps-am install-strip \
-	installcheck installcheck-am installdirs maintainer-clean \
-	maintainer-clean-generic mostlyclean mostlyclean-generic \
-	mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am
+	cscopelist-am ctags-am distclean distclean-generic \
+	distclean-libtool distdir dvi dvi-am html html-am info info-am \
+	install install-am install-data install-data-am install-dvi \
+	install-dvi-am install-exec install-exec-am install-html \
+	install-html-am install-info install-info-am install-man \
+	install-pdf install-pdf-am install-ps install-ps-am \
+	install-strip installcheck installcheck-am installdirs \
+	maintainer-clean maintainer-clean-generic mostlyclean \
+	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
+	tags-am uninstall uninstall-am
 
 .asy.png:
 	- at ASY@ -config "" -render=4 -f png -o $@ $<
diff --git a/Documentation/hkl.html b/Documentation/hkl.html
index 642d73c..0e56c36 100644
--- a/Documentation/hkl.html
+++ b/Documentation/hkl.html
@@ -2,8 +2,8 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
 <head>
-<title>Welcome to hkl's 4.99.99.1940 documentation!</title>
-<!-- 2015-05-04 lun. 10:39 -->
+<title>Welcome to hkl's 4.99.99.1946 documentation!</title>
+<!-- 2015-06-30 mar. 14:34 -->
 <meta http-equiv="Content-Type" content="text/html;charset=utf-8"/>
 <meta name="generator" content="Org-mode"/>
 <meta name="author" content="Picca Frédéric-Emmanuel"/>
@@ -175,7 +175,7 @@ for the JavaScript code in this tag.
 </head>
 <body>
 <div id="content">
-<h1 class="title">Welcome to hkl's 4.99.99.1940 documentation!</h1>
+<h1 class="title">Welcome to hkl's 4.99.99.1946 documentation!</h1>
 <div id="table-of-contents">
 <h2>Table of Contents</h2>
 <div id="text-table-of-contents">
@@ -204,9 +204,16 @@ for the JavaScript code in this tag.
 </li>
 <li><a href="#sec-2">2. PseudoAxes</a>
 <ul>
-<li><a href="#sec-2-1">2.1. Eulerians to Kappa angles</a></li>
-<li><a href="#sec-2-2">2.2. Kappa to Eulerians angles</a></li>
-<li><a href="#sec-2-3">2.3. Qper and Qpar</a></li>
+<li><a href="#sec-2-1">2.1. General process</a>
+<ul>
+<li><a href="#sec-2-1-1">2.1.1. First Solution</a></li>
+<li><a href="#sec-2-1-2">2.1.2. Multiplication of the solutions.</a></li>
+<li><a href="#sec-2-1-3">2.1.3. Restrains of the Solutions</a></li>
+</ul>
+</li>
+<li><a href="#sec-2-2">2.2. Eulerians to Kappa angles</a></li>
+<li><a href="#sec-2-3">2.3. Kappa to Eulerians angles</a></li>
+<li><a href="#sec-2-4">2.4. Qper and Qpar</a></li>
 </ul>
 </li>
 <li><a href="#sec-3">3. Diffractometers</a>
@@ -322,12 +329,17 @@ for the JavaScript code in this tag.
 </li>
 <li><a href="#sec-6">6. Releases</a>
 <ul>
-<li><a href="#sec-6-1">6.1. 4.99.99.1940</a>
+<li><a href="#sec-6-1">6.1. 4.99.99.1946</a>
+<ul>
+<li><a href="#sec-6-1-1">6.1.1. <code>HklEngine</code></a></li>
+</ul>
+</li>
+<li><a href="#sec-6-2">6.2. 4.99.99.1940 <span class="timestamp-wrapper"><span class="timestamp"><2015-05-04 lun.></span></span></a>
 <ul>
-<li><a href="#sec-6-1-1">6.1.1. <code>HklLattice</code> add an <code>hkl_lattice_volume_get</code></a></li>
-<li><a href="#sec-6-1-2">6.1.2. <code>HklEngine</code></a></li>
-<li><a href="#sec-6-1-3">6.1.3. <code>HklLattice</code> expose in the binding the _x_get/set methods <span class="timestamp-wrapper"><span class="timestamp"><2015-03-24 mar.></span></span></a></li>
-<li><a href="#sec-6-1-4">6.1.4. <code>HklSampleReflection</code> expose the flag_get/set and geometry_get/set method <span class="timestamp-wrapper"><span class="timestamp"><2015-03-24 mar.></span></span></a></li>
+<li><a href="#sec-6-2-1">6.2.1. <code>HklLattice</code> add an <code>hkl_lattice_volume_get</code></a></li>
+<li><a href="#sec-6-2-2">6.2.2. <code>HklEngine</code></a></li>
+<li><a href="#sec-6-2-3">6.2.3. <code>HklLattice</code> expose in the binding the _x_get/set methods <span class="timestamp-wrapper"><span class="timestamp"><2015-03-24 mar.></span></span></a></li>
+<li><a href="#sec-6-2-4">6.2.4. <code>HklSampleReflection</code> expose the flag_get/set and geometry_get/set method <span class="timestamp-wrapper"><span class="timestamp"><2015-03-24 mar.></span></span></a></li>
 </ul>
 </li>
 </ul>
@@ -336,25 +348,24 @@ for the JavaScript code in this tag.
 <ul>
 <li><a href="#sec-7-1">7.1. hkl</a>
 <ul>
-<li><a href="#sec-7-1-1">7.1.1. <code>[0/2]</code> HklEngine "read_only"</a></li>
-<li><a href="#sec-7-1-2">7.1.2. HklSource</a></li>
-<li><a href="#sec-7-1-3">7.1.3. <code>[0/2]</code> PetraIII</a></li>
-<li><a href="#sec-7-1-4">7.1.4. <code>[2/4]</code> HklParameter</a></li>
-<li><a href="#sec-7-1-5">7.1.5. This will help for the documentation and the gui.</a></li>
-<li><a href="#sec-7-1-6">7.1.6. HklGeometryList different method to help select a solution.</a></li>
-<li><a href="#sec-7-1-7">7.1.7. add a fit on the Hklaxis offsets.</a></li>
-<li><a href="#sec-7-1-8">7.1.8. API to put a detector and a sample on the Geometry.</a></li>
-<li><a href="#sec-7-1-9">7.1.9. HklSample</a></li>
-<li><a href="#sec-7-1-10">7.1.10. HklEngine "zone"</a></li>
-<li><a href="#sec-7-1-11">7.1.11. HklEngine "custom"</a></li>
-<li><a href="#sec-7-1-12">7.1.12. create a macro to help compare two real the right way</a></li>
-<li><a href="#sec-7-1-13">7.1.13. add an hkl_sample_set_lattice_unit()</a></li>
-<li><a href="#sec-7-1-14">7.1.14. SOLEIL SIXS</a></li>
-<li><a href="#sec-7-1-15">7.1.15. generalisation of the z-axis hkl solver</a></li>
-<li><a href="#sec-7-1-16">7.1.16. investigate the prigo geometry.</a></li>
-<li><a href="#sec-7-1-17">7.1.17. augeas/elektra for the plugin configure part.</a></li>
-<li><a href="#sec-7-1-18">7.1.18. logging</a></li>
-<li><a href="#sec-7-1-19">7.1.19. performances</a></li>
+<li><a href="#sec-7-1-1">7.1.1. HklSource</a></li>
+<li><a href="#sec-7-1-2">7.1.2. <code>[0/2]</code> PetraIII</a></li>
+<li><a href="#sec-7-1-3">7.1.3. <code>[2/4]</code> HklParameter</a></li>
+<li><a href="#sec-7-1-4">7.1.4. This will help for the documentation and the gui.</a></li>
+<li><a href="#sec-7-1-5">7.1.5. HklGeometryList different method to help select a solution.</a></li>
+<li><a href="#sec-7-1-6">7.1.6. add a fit on the Hklaxis offsets.</a></li>
+<li><a href="#sec-7-1-7">7.1.7. API to put a detector and a sample on the Geometry.</a></li>
+<li><a href="#sec-7-1-8">7.1.8. HklSample</a></li>
+<li><a href="#sec-7-1-9">7.1.9. HklEngine "zone"</a></li>
+<li><a href="#sec-7-1-10">7.1.10. HklEngine "custom"</a></li>
+<li><a href="#sec-7-1-11">7.1.11. create a macro to help compare two real the right way</a></li>
+<li><a href="#sec-7-1-12">7.1.12. add an hkl_sample_set_lattice_unit()</a></li>
+<li><a href="#sec-7-1-13">7.1.13. SOLEIL SIXS</a></li>
+<li><a href="#sec-7-1-14">7.1.14. generalisation of the z-axis hkl solver</a></li>
+<li><a href="#sec-7-1-15">7.1.15. investigate the prigo geometry.</a></li>
+<li><a href="#sec-7-1-16">7.1.16. augeas/elektra for the plugin configure part.</a></li>
+<li><a href="#sec-7-1-17">7.1.17. logging</a></li>
+<li><a href="#sec-7-1-18">7.1.18. performances</a></li>
 </ul>
 </li>
 <li><a href="#sec-7-2">7.2. documentation</a>
@@ -938,8 +949,51 @@ different kind of pseudo axes.
 </p>
 </div>
 <div id="outline-container-sec-2-1" class="outline-3">
-<h3 id="sec-2-1"><span class="section-number-3">2.1</span> Eulerians to Kappa angles</h3>
+<h3 id="sec-2-1"><span class="section-number-3">2.1</span> General process</h3>
 <div class="outline-text-3" id="text-2-1">
+</div><div id="outline-container-sec-2-1-1" class="outline-4">
+<h4 id="sec-2-1-1"><span class="section-number-4">2.1.1</span> First Solution</h4>
+<div class="outline-text-4" id="text-2-1-1">
+<p>
+The hkl library use the gsl library in order to find the first
+valid solution.
+</p>
+</div>
+</div>
+
+<div id="outline-container-sec-2-1-2" class="outline-4">
+<h4 id="sec-2-1-2"><span class="section-number-4">2.1.2</span> Multiplication of the solutions.</h4>
+<div class="outline-text-4" id="text-2-1-2">
+<p>
+Once we have got the first solution different strategies are
+applyed in order to generate more solutions.
+</p>
+</div>
+<ol class="org-ol"><li>Geometry Multiplication<br/><div class="outline-text-5" id="text-2-1-2-1">
+<p>
+For kappa diffractometers, once you have one solution it is
+possible to générate another one using a property of this
+geometry. (Left arm and right arm).
+</p>
+</div>
+</li></ol>
+</div>
+
+<div id="outline-container-sec-2-1-3" class="outline-4">
+<h4 id="sec-2-1-3"><span class="section-number-4">2.1.3</span> Restrains of the Solutions</h4>
+<div class="outline-text-4" id="text-2-1-3">
+<p>
+We apply then some constrains to reduce these solutions to only a
+bunch of acceptable ones. Usualy we take the axis range into
+account.
+</p>
+</div>
+</div>
+</div>
+
+<div id="outline-container-sec-2-2" class="outline-3">
+<h3 id="sec-2-2"><span class="section-number-3">2.2</span> Eulerians to Kappa angles</h3>
+<div class="outline-text-3" id="text-2-2">
 <p>
 1st solution
 </p>
@@ -973,9 +1027,9 @@ and \(\alpha\) is the angle of the kappa axis with the \(\vec{y}\) axis.
 </p>
 </div>
 </div>
-<div id="outline-container-sec-2-2" class="outline-3">
-<h3 id="sec-2-2"><span class="section-number-3">2.2</span> Kappa to Eulerians angles</h3>
-<div class="outline-text-3" id="text-2-2">
+<div id="outline-container-sec-2-3" class="outline-3">
+<h3 id="sec-2-3"><span class="section-number-3">2.3</span> Kappa to Eulerians angles</h3>
+<div class="outline-text-3" id="text-2-3">
 <p>
 1st solution
 </p>
@@ -1029,9 +1083,9 @@ p = \arctan\left(\tan\frac{\kappa}{2} \cos\alpha\right)
 </div>
 </div>
 </div>
-<div id="outline-container-sec-2-3" class="outline-3">
-<h3 id="sec-2-3"><span class="section-number-3">2.3</span> Qper and Qpar</h3>
-<div class="outline-text-3" id="text-2-3">
+<div id="outline-container-sec-2-4" class="outline-3">
+<h3 id="sec-2-4"><span class="section-number-3">2.4</span> Qper and Qpar</h3>
+<div class="outline-text-3" id="text-2-4">
 
 <div class="figure">
 <p><img src="./figures/qper_qpar.png"  alt="qper_qpar.png"/></p>
@@ -1284,6 +1338,43 @@ This section is automatically generating by introspecting the hkl library.
 </li>
 </ul>
 </div>
+</li>
+
+<li>"<b>emergence</b>":<br/><div class="outline-text-5" id="text-3-1-2-5">
+<ul class="org-ul">
+<li>pseudo axes:
+<ul class="org-ul">
+<li>"<b>emergence</b>" : incidence of the outgoing beam.
+</li>
+
+<li>"<b>azimuth</b>" : azimuth of the sample surface (projection of \(\vec{n}\) on the \(yOz\) plan
+</li>
+</ul>
+</li>
+</ul>
+
+
+<ul class="org-ul">
+<li>mode: "<b>emergence</b>"
+<ul class="org-ul">
+<li>axes (read) : "<b>omega</b>", "<b>chi</b>", "<b>phi</b>", "<b>tth</b>"
+</li>
+<li>axes (write): 
+</li>
+<li>parameters: 
+<ul class="org-ul">
+<li><b>x</b> [0.0]: the x coordinate of the surface \(\vec{n}\)
+</li>
+<li><b>y</b> [1.0]: the y coordinate of the surface \(\vec{n}\)
+</li>
+<li><b>z</b> [0.0]: the z coordinate of the surface \(\vec{n}\)
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
 </li></ol>
 </div>
 </div>
@@ -1887,6 +1978,43 @@ This section is automatically generating by introspecting the hkl library.
 </li>
 </ul>
 </div>
+</li>
+
+<li>"<b>emergence</b>":<br/><div class="outline-text-5" id="text-3-3-2-7">
+<ul class="org-ul">
+<li>pseudo axes:
+<ul class="org-ul">
+<li>"<b>emergence</b>" : incidence of the outgoing beam.
+</li>
+
+<li>"<b>azimuth</b>" : azimuth of the sample surface (projection of \(\vec{n}\) on the \(yOz\) plan
+</li>
+</ul>
+</li>
+</ul>
+
+
+<ul class="org-ul">
+<li>mode: "<b>emergence</b>"
+<ul class="org-ul">
+<li>axes (read) : "<b>mu</b>", "<b>omega</b>", "<b>chi</b>", "<b>phi</b>", "<b>gamma</b>", "<b>delta</b>"
+</li>
+<li>axes (write): 
+</li>
+<li>parameters: 
+<ul class="org-ul">
+<li><b>x</b> [0.0]: the x coordinate of the surface \(\vec{n}\)
+</li>
+<li><b>y</b> [1.0]: the y coordinate of the surface \(\vec{n}\)
+</li>
+<li><b>z</b> [0.0]: the z coordinate of the surface \(\vec{n}\)
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
 </li></ol>
 </div>
 </div>
@@ -2156,6 +2284,43 @@ This section is automatically generating by introspecting the hkl library.
 </li>
 </ul>
 </div>
+</li>
+
+<li>"<b>emergence</b>":<br/><div class="outline-text-5" id="text-3-4-2-6">
+<ul class="org-ul">
+<li>pseudo axes:
+<ul class="org-ul">
+<li>"<b>emergence</b>" : incidence of the outgoing beam.
+</li>
+
+<li>"<b>azimuth</b>" : azimuth of the sample surface (projection of \(\vec{n}\) on the \(yOz\) plan
+</li>
+</ul>
+</li>
+</ul>
+
+
+<ul class="org-ul">
+<li>mode: "<b>emergence</b>"
+<ul class="org-ul">
+<li>axes (read) : "<b>komega</b>", "<b>kappa</b>", "<b>kphi</b>", "<b>tth</b>"
+</li>
+<li>axes (write): 
+</li>
+<li>parameters: 
+<ul class="org-ul">
+<li><b>x</b> [0.0]: the x coordinate of the surface \(\vec{n}\)
+</li>
+<li><b>y</b> [1.0]: the y coordinate of the surface \(\vec{n}\)
+</li>
+<li><b>z</b> [0.0]: the z coordinate of the surface \(\vec{n}\)
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
 </li></ol>
 </div>
 </div>
@@ -2602,6 +2767,43 @@ This section is automatically generating by introspecting the hkl library.
 </li>
 </ul>
 </div>
+</li>
+
+<li>"<b>emergence</b>":<br/><div class="outline-text-5" id="text-3-5-2-8">
+<ul class="org-ul">
+<li>pseudo axes:
+<ul class="org-ul">
+<li>"<b>emergence</b>" : incidence of the outgoing beam.
+</li>
+
+<li>"<b>azimuth</b>" : azimuth of the sample surface (projection of \(\vec{n}\) on the \(yOz\) plan
+</li>
+</ul>
+</li>
+</ul>
+
+
+<ul class="org-ul">
+<li>mode: "<b>emergence</b>"
+<ul class="org-ul">
+<li>axes (read) : "<b>mu</b>", "<b>komega</b>", "<b>kappa</b>", "<b>kphi</b>", "<b>gamma</b>", "<b>delta</b>"
+</li>
+<li>axes (write): 
+</li>
+<li>parameters: 
+<ul class="org-ul">
+<li><b>x</b> [0.0]: the x coordinate of the surface \(\vec{n}\)
+</li>
+<li><b>y</b> [1.0]: the y coordinate of the surface \(\vec{n}\)
+</li>
+<li><b>z</b> [0.0]: the z coordinate of the surface \(\vec{n}\)
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
 </li></ol>
 </div>
 </div>
@@ -3389,6 +3591,43 @@ This section is automatically generating by introspecting the hkl library.
 </li>
 </ul>
 </div>
+</li>
+
+<li>"<b>emergence</b>":<br/><div class="outline-text-5" id="text-3-8-2-8">
+<ul class="org-ul">
+<li>pseudo axes:
+<ul class="org-ul">
+<li>"<b>emergence</b>" : incidence of the outgoing beam.
+</li>
+
+<li>"<b>azimuth</b>" : azimuth of the sample surface (projection of \(\vec{n}\) on the \(yOz\) plan
+</li>
+</ul>
+</li>
+</ul>
+
+
+<ul class="org-ul">
+<li>mode: "<b>emergence</b>"
+<ul class="org-ul">
+<li>axes (read) : "<b>mu</b>", "<b>komega</b>", "<b>kappa</b>", "<b>kphi</b>", "<b>gamma</b>", "<b>delta</b>"
+</li>
+<li>axes (write): 
+</li>
+<li>parameters: 
+<ul class="org-ul">
+<li><b>x</b> [0.0]: the x coordinate of the surface \(\vec{n}\)
+</li>
+<li><b>y</b> [1.0]: the y coordinate of the surface \(\vec{n}\)
+</li>
+<li><b>z</b> [0.0]: the z coordinate of the surface \(\vec{n}\)
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
 </li></ol>
 </div>
 </div>
@@ -3579,6 +3818,43 @@ This section is automatically generating by introspecting the hkl library.
 </li>
 </ul>
 </div>
+</li>
+
+<li>"<b>emergence</b>":<br/><div class="outline-text-5" id="text-3-9-2-6">
+<ul class="org-ul">
+<li>pseudo axes:
+<ul class="org-ul">
+<li>"<b>emergence</b>" : incidence of the outgoing beam.
+</li>
+
+<li>"<b>azimuth</b>" : azimuth of the sample surface (projection of \(\vec{n}\) on the \(yOz\) plan
+</li>
+</ul>
+</li>
+</ul>
+
+
+<ul class="org-ul">
+<li>mode: "<b>emergence</b>"
+<ul class="org-ul">
+<li>axes (read) : "<b>thetah</b>", "<b>alphay</b>", "<b>alphax</b>", "<b>delta</b>", "<b>gamma</b>"
+</li>
+<li>axes (write): 
+</li>
+<li>parameters: 
+<ul class="org-ul">
+<li><b>x</b> [0.0]: the x coordinate of the surface \(\vec{n}\)
+</li>
+<li><b>y</b> [1.0]: the y coordinate of the surface \(\vec{n}\)
+</li>
+<li><b>z</b> [0.0]: the z coordinate of the surface \(\vec{n}\)
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
 </li></ol>
 </div>
 </div>
@@ -4377,6 +4653,43 @@ This section is automatically generating by introspecting the hkl library.
 </li>
 </ul>
 </div>
+</li>
+
+<li>"<b>emergence</b>":<br/><div class="outline-text-5" id="text-3-14-2-6">
+<ul class="org-ul">
+<li>pseudo axes:
+<ul class="org-ul">
+<li>"<b>emergence</b>" : incidence of the outgoing beam.
+</li>
+
+<li>"<b>azimuth</b>" : azimuth of the sample surface (projection of \(\vec{n}\) on the \(yOz\) plan
+</li>
+</ul>
+</li>
+</ul>
+
+
+<ul class="org-ul">
+<li>mode: "<b>emergence</b>"
+<ul class="org-ul">
+<li>axes (read) : "<b>mu</b>", "<b>omega</b>", "<b>delta</b>", "<b>gamma</b>"
+</li>
+<li>axes (write): 
+</li>
+<li>parameters: 
+<ul class="org-ul">
+<li><b>x</b> [0.0]: the x coordinate of the surface \(\vec{n}\)
+</li>
+<li><b>y</b> [1.0]: the y coordinate of the surface \(\vec{n}\)
+</li>
+<li><b>z</b> [0.0]: the z coordinate of the surface \(\vec{n}\)
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
 </li></ol>
 </div>
 </div>
@@ -4417,7 +4730,7 @@ then checkout the next branch like this:
 
 <div class="org-src-container">
 
-<pre class="src src-sh">cd hkl
+<pre class="src src-sh"><span style="font-weight: bold;">cd</span> hkl
 git checkout -b next origin/next
 </pre>
 </div>
@@ -4541,7 +4854,7 @@ You can find the bug tracker here
 <li>Other OS
 
 <p>
-You just need to send an <a href="mailto:submit at bugs.debian.org?subject=%20My%20problem%20with%20hkl...&body=Package:%20hkl%0AVersion:%204.99.99.1940%0A%0AI%20found%20this%20problem%20in%20hkl">email</a>
+You just need to send an <a href="mailto:submit at bugs.debian.org?subject=%20My%20problem%20with%20hkl...&body=Package:%20hkl%0AVersion:%204.99.99.1946%0A%0AI%20found%20this%20problem%20in%20hkl">email</a>
 </p>
 </li>
 </ul>
@@ -4651,8 +4964,8 @@ the process a make target was written. You just need to type:
 </p>
 <div class="org-src-container">
 
-<pre class="src src-sh">cd Documentation
-make editdoc
+<pre class="src src-sh"><span style="font-weight: bold;">cd</span> Documentation
+make doc-edit
 </pre>
 </div>
 <p>
@@ -4665,7 +4978,7 @@ editing the <code>Documentation/hkl.org.in</code> file which is text only.
 </p>
 
 <p>
-The most expected contributions for now are:
+The most expected contributions are for now:
 </p>
 <ul class="org-ul">
 <li>english correctness
@@ -4827,11 +5140,32 @@ use only the closest solution for the next points of the trajectory.
 <h2 id="sec-6"><span class="section-number-2">6</span> Releases</h2>
 <div class="outline-text-2" id="text-6">
 </div><div id="outline-container-sec-6-1" class="outline-3">
-<h3 id="sec-6-1"><span class="section-number-3">6.1</span> 4.99.99.1940</h3>
+<h3 id="sec-6-1"><span class="section-number-3">6.1</span> 4.99.99.1946</h3>
 <div class="outline-text-3" id="text-6-1">
 </div><div id="outline-container-sec-6-1-1" class="outline-4">
-<h4 id="sec-6-1-1"><span class="section-number-4">6.1.1</span> <span class="done DONE">DONE</span> <code>HklLattice</code> add an <code>hkl_lattice_volume_get</code></h4>
+<h4 id="sec-6-1-1"><span class="section-number-4">6.1.1</span> <span class="done DONE">DONE</span> <code>HklEngine</code></h4>
 <div class="outline-text-4" id="text-6-1-1">
+</div><ol class="org-ol"><li>"emergence" <span class="timestamp-wrapper"><span class="timestamp"><2015-06-22 lun.></span></span><br/><div class="outline-text-5" id="text-6-1-1-1">
+<p>
+Add a new emergence engine which contain only one pseudo axis.
+</p>
+<ul class="org-ul">
+<li><code>emergence</code> the outgoing beam emergence from the sample's surface.
+</li>
+<li><code>azimuth</code> the sample's surface azimuth.
+</li>
+</ul>
+</div>
+</li></ol>
+</div>
+</div>
+
+<div id="outline-container-sec-6-2" class="outline-3">
+<h3 id="sec-6-2"><span class="section-number-3">6.2</span> 4.99.99.1940 <span class="timestamp-wrapper"><span class="timestamp"><2015-05-04 lun.></span></span></h3>
+<div class="outline-text-3" id="text-6-2">
+</div><div id="outline-container-sec-6-2-1" class="outline-4">
+<h4 id="sec-6-2-1"><span class="section-number-4">6.2.1</span> <span class="done DONE">DONE</span> <code>HklLattice</code> add an <code>hkl_lattice_volume_get</code></h4>
+<div class="outline-text-4" id="text-6-2-1">
 <div class="org-src-container">
 
 <pre class="src src-c">volume = hkl_lattice_volume_get(lattice);
@@ -4840,10 +5174,10 @@ use only the closest solution for the next points of the trajectory.
 </div>
 </div>
 
-<div id="outline-container-sec-6-1-2" class="outline-4">
-<h4 id="sec-6-1-2"><span class="section-number-4">6.1.2</span> <span class="done DONE">DONE</span> <code>HklEngine</code></h4>
-<div class="outline-text-4" id="text-6-1-2">
-</div><ol class="org-ol"><li>"nrj, sample, &#x2026;  dependencies" <span class="timestamp-wrapper"><span class="timestamp"><2015-03-24 mar.></span></span><br/><div class="outline-text-5" id="text-6-1-2-1">
+<div id="outline-container-sec-6-2-2" class="outline-4">
+<h4 id="sec-6-2-2"><span class="section-number-4">6.2.2</span> <span class="done DONE">DONE</span> <code>HklEngine</code></h4>
+<div class="outline-text-4" id="text-6-2-2">
+</div><ol class="org-ol"><li>"nrj, sample, &#x2026;  dependencies" <span class="timestamp-wrapper"><span class="timestamp"><2015-03-24 mar.></span></span><br/><div class="outline-text-5" id="text-6-2-2-1">
 <p>
 Add the <code>hkl_engine_dependencies_get</code> method which return if the
 <code>HklEngine</code> depends of the axes, the energy, or the sample. the
@@ -4853,11 +5187,11 @@ possible values are stored in the <code>HklEngineDependencies</code> enum.
 <div class="org-src-container">
 
 <pre class="src src-c">dependencies = hkl_engine_dependencies_get(engine);
-if (dependencies & HKL_ENGINE_DEPENDENCIES_ENERGY) {
-	...
+<span style="font-weight: bold;">if</span> (dependencies & HKL_ENGINE_DEPENDENCIES_ENERGY) {
+        ...
 }
-if (dependencies & HKL_ENGINE_DEPENDENCIES_SAMPLE) {
-	...
+<span style="font-weight: bold;">if</span> (dependencies & HKL_ENGINE_DEPENDENCIES_SAMPLE) {
+        ...
 }
 ...
 </pre>
@@ -4865,7 +5199,7 @@ if (dependencies & HKL_ENGINE_DEPENDENCIES_SAMPLE) {
 </div>
 </li>
 
-<li>"tth2" <span class="timestamp-wrapper"><span class="timestamp"><2015-04-03 ven></span></span><br/><div class="outline-text-5" id="text-6-1-2-2">
+<li>"tth2" <span class="timestamp-wrapper"><span class="timestamp"><2015-04-03 ven></span></span><br/><div class="outline-text-5" id="text-6-2-2-2">
 <p>
 Add a new hkl engine which contain two pseudo axes.
 </p>
@@ -4878,7 +5212,7 @@ Add a new hkl engine which contain two pseudo axes.
 </div>
 </li>
 
-<li>"incidence" <span class="timestamp-wrapper"><span class="timestamp"><2015-04-21 mar.></span></span><br/><div class="outline-text-5" id="text-6-1-2-3">
+<li>"incidence" <span class="timestamp-wrapper"><span class="timestamp"><2015-04-21 mar.></span></span><br/><div class="outline-text-5" id="text-6-2-2-3">
 <p>
 Add a new incidence engine which contain only one pseudo axis.
 </p>
@@ -4891,14 +5225,14 @@ Add a new incidence engine which contain only one pseudo axis.
 </div>
 </li>
 
-<li><code>hkl_engine_parameter_set</code> <span class="timestamp-wrapper"><span class="timestamp"><2015-05-04 lun.></span></span><br/><div class="outline-text-5" id="text-6-1-2-4">
+<li><code>hkl_engine_parameter_set</code> <span class="timestamp-wrapper"><span class="timestamp"><2015-05-04 lun.></span></span><br/><div class="outline-text-5" id="text-6-2-2-4">
 <p>
 Fix a bug and expose the method in the binding.
 </p>
 </div>
 </li>
 
-<li>general<br/><div class="outline-text-5" id="text-6-1-2-5">
+<li>general<br/><div class="outline-text-5" id="text-6-2-2-5">
 <ul class="org-ul">
 <li>use #define AXIS "axis_name" in all the code to set the axes
 names at only one place. <span class="timestamp-wrapper"><span class="timestamp"><2015-04-23 jeu.></span></span>
@@ -4908,35 +5242,35 @@ names at only one place. <span class="timestamp-wrapper"><span class="timestamp"
 </li></ol>
 </div>
 
-<div id="outline-container-sec-6-1-3" class="outline-4">
-<h4 id="sec-6-1-3"><span class="section-number-4">6.1.3</span> <span class="done DONE">DONE</span> <code>HklLattice</code> expose in the binding the _x_get/set methods <span class="timestamp-wrapper"><span class="timestamp"><2015-03-24 mar.></span></span></h4>
-<div class="outline-text-4" id="text-6-1-3">
+<div id="outline-container-sec-6-2-3" class="outline-4">
+<h4 id="sec-6-2-3"><span class="section-number-4">6.2.3</span> <span class="done DONE">DONE</span> <code>HklLattice</code> expose in the binding the _x_get/set methods <span class="timestamp-wrapper"><span class="timestamp"><2015-03-24 mar.></span></span></h4>
+<div class="outline-text-4" id="text-6-2-3">
 <p>
 Now you can use hkl_lattice_x_get where x=a, b, c, alpha, beta,
 gamma in the bindings.
 </p>
 <div class="org-src-container">
 
-<pre class="src src-python">a = lattice.a_get()
+<pre class="src src-python"><span style="font-weight: bold; font-style: italic;">a</span> = lattice.a_get()
 lattice.a_set(a)
 </pre>
 </div>
 </div>
 </div>
 
-<div id="outline-container-sec-6-1-4" class="outline-4">
-<h4 id="sec-6-1-4"><span class="section-number-4">6.1.4</span> <span class="done DONE">DONE</span> <code>HklSampleReflection</code> expose the flag_get/set and geometry_get/set method <span class="timestamp-wrapper"><span class="timestamp"><2015-03-24 mar.></span></span></h4>
-<div class="outline-text-4" id="text-6-1-4">
+<div id="outline-container-sec-6-2-4" class="outline-4">
+<h4 id="sec-6-2-4"><span class="section-number-4">6.2.4</span> <span class="done DONE">DONE</span> <code>HklSampleReflection</code> expose the flag_get/set and geometry_get/set method <span class="timestamp-wrapper"><span class="timestamp"><2015-03-24 mar.></span></span></h4>
+<div class="outline-text-4" id="text-6-2-4">
 <p>
 It is now possible to change the geometry stored in a reflection
 via the bindings.
 </p>
 <div class="org-src-container">
 
-<pre class="src src-python">flag = reflection.flag_get()
+<pre class="src src-python"><span style="font-weight: bold; font-style: italic;">flag</span> = reflection.flag_get()
 reflection.flag_set(flag)
 
-geometry = reflection.geometry_get()
+<span style="font-weight: bold; font-style: italic;">geometry</span> = reflection.geometry_get()
 geometry.axes_values_set([omega, chi, phi, ...])
 reflection.geometry_set(geometry)
 </pre>
@@ -4953,18 +5287,8 @@ reflection.geometry_set(geometry)
 <h3 id="sec-7-1"><span class="section-number-3">7.1</span> hkl</h3>
 <div class="outline-text-3" id="text-7-1">
 </div><div id="outline-container-sec-7-1-1" class="outline-4">
-<h4 id="sec-7-1-1"><span class="section-number-4">7.1.1</span> <span class="todo TODO">TODO</span> <code>[0/2]</code> HklEngine "read_only"</h4>
+<h4 id="sec-7-1-1"><span class="section-number-4">7.1.1</span> <span class="todo TODO">TODO</span> HklSource</h4>
 <div class="outline-text-4" id="text-7-1-1">
-<ul class="org-ul">
-<li><code>[&#xa0;]</code> "beta" emergence angle
-</li>
-</ul>
-</div>
-</div>
-
-<div id="outline-container-sec-7-1-2" class="outline-4">
-<h4 id="sec-7-1-2"><span class="section-number-4">7.1.2</span> <span class="todo TODO">TODO</span> HklSource</h4>
-<div class="outline-text-4" id="text-7-1-2">
 <p>
 Create a parameter for the wavelength. This is just internally for
 the futur trajectory system, so no need to change the signature of
@@ -4973,10 +5297,10 @@ hkl_geometry_vawelength get/set
 </div>
 </div>
 
-<div id="outline-container-sec-7-1-3" class="outline-4">
-<h4 id="sec-7-1-3"><span class="section-number-4">7.1.3</span> <span class="todo TODO">TODO</span> <code>[0/2]</code> PetraIII</h4>
-<div class="outline-text-4" id="text-7-1-3">
-</div><ol class="org-ol"><li><span class="todo TODO">TODO</span> computation problem<br/><div class="outline-text-5" id="text-7-1-3-1">
+<div id="outline-container-sec-7-1-2" class="outline-4">
+<h4 id="sec-7-1-2"><span class="section-number-4">7.1.2</span> <span class="todo TODO">TODO</span> <code>[0/2]</code> PetraIII</h4>
+<div class="outline-text-4" id="text-7-1-2">
+</div><ol class="org-ol"><li><span class="todo TODO">TODO</span> computation problem<br/><div class="outline-text-5" id="text-7-1-2-1">
 <p>
 Dear Teresa,
 </p>
@@ -5129,7 +5453,7 @@ SaveDirectory <i>home/p09user/crystals</i>
 </p>
 </div>
 </li>
-<li><span class="todo TODO">TODO</span> another question<br/><div class="outline-text-5" id="text-7-1-3-2">
+<li><span class="todo TODO">TODO</span> another question<br/><div class="outline-text-5" id="text-7-1-2-2">
 <p>
 J'ai un probleme avec la position que le controlleur calcule avec la
 matrice UB que nous t'avons envoye.
@@ -5153,9 +5477,9 @@ ta librairie ?
 </li></ol>
 </div>
 
-<div id="outline-container-sec-7-1-4" class="outline-4">
-<h4 id="sec-7-1-4"><span class="section-number-4">7.1.4</span> <span class="todo TODO">TODO</span> <code>[2/4]</code> HklParameter</h4>
-<div class="outline-text-4" id="text-7-1-4">
+<div id="outline-container-sec-7-1-3" class="outline-4">
+<h4 id="sec-7-1-3"><span class="section-number-4">7.1.3</span> <span class="todo TODO">TODO</span> <code>[2/4]</code> HklParameter</h4>
+<div class="outline-text-4" id="text-7-1-3">
 <ul class="org-ul">
 <li><code>[X]</code> method to use min/max to check for the validity
 </li>
@@ -5174,12 +5498,12 @@ for this degenerescencence.
 </div>
 </div>
 
-<div id="outline-container-sec-7-1-5" class="outline-4">
-<h4 id="sec-7-1-5"><span class="section-number-4">7.1.5</span> <span class="todo TODO">TODO</span> This will help for the documentation and the gui.</h4>
+<div id="outline-container-sec-7-1-4" class="outline-4">
+<h4 id="sec-7-1-4"><span class="section-number-4">7.1.4</span> <span class="todo TODO">TODO</span> This will help for the documentation and the gui.</h4>
 </div>
-<div id="outline-container-sec-7-1-6" class="outline-4">
-<h4 id="sec-7-1-6"><span class="section-number-4">7.1.6</span> <span class="todo TODO">TODO</span> HklGeometryList different method to help select a solution.</h4>
-<div class="outline-text-4" id="text-7-1-6">
+<div id="outline-container-sec-7-1-5" class="outline-4">
+<h4 id="sec-7-1-5"><span class="section-number-4">7.1.5</span> <span class="todo TODO">TODO</span> HklGeometryList different method to help select a solution.</h4>
+<div class="outline-text-4" id="text-7-1-5">
 <p>
 this select solution can depend on the geometry
 for example the kappa axis must be in one side of the plane.
@@ -5187,16 +5511,16 @@ for example the kappa axis must be in one side of the plane.
 </div>
 </div>
 
+<div id="outline-container-sec-7-1-6" class="outline-4">
+<h4 id="sec-7-1-6"><span class="section-number-4">7.1.6</span> <span class="todo TODO">TODO</span> add a fit on the Hklaxis offsets.</h4>
+</div>
 <div id="outline-container-sec-7-1-7" class="outline-4">
-<h4 id="sec-7-1-7"><span class="section-number-4">7.1.7</span> <span class="todo TODO">TODO</span> add a fit on the Hklaxis offsets.</h4>
+<h4 id="sec-7-1-7"><span class="section-number-4">7.1.7</span> <span class="todo TODO">TODO</span> API to put a detector and a sample on the Geometry.</h4>
 </div>
 <div id="outline-container-sec-7-1-8" class="outline-4">
-<h4 id="sec-7-1-8"><span class="section-number-4">7.1.8</span> <span class="todo TODO">TODO</span> API to put a detector and a sample on the Geometry.</h4>
-</div>
-<div id="outline-container-sec-7-1-9" class="outline-4">
-<h4 id="sec-7-1-9"><span class="section-number-4">7.1.9</span> <span class="todo TODO">TODO</span> HklSample</h4>
-<div class="outline-text-4" id="text-7-1-9">
-</div><ol class="org-ol"><li><span class="todo TODO">TODO</span> unit test: hkl_sample_affine.<br/><div class="outline-text-5" id="text-7-1-9-1">
+<h4 id="sec-7-1-8"><span class="section-number-4">7.1.8</span> <span class="todo TODO">TODO</span> HklSample</h4>
+<div class="outline-text-4" id="text-7-1-8">
+</div><ol class="org-ol"><li><span class="todo TODO">TODO</span> unit test: hkl_sample_affine.<br/><div class="outline-text-5" id="text-7-1-8-1">
 <p>
 Check this:
 lattice=1.540000;1.540000;1.540000;90.000000;90.000000;90.000000;0;0;0;0;0;0
@@ -5219,12 +5543,12 @@ warn the user about this.
 </li></ol>
 </div>
 
-<div id="outline-container-sec-7-1-10" class="outline-4">
-<h4 id="sec-7-1-10"><span class="section-number-4">7.1.10</span> <span class="todo TODO">TODO</span> HklEngine "zone"</h4>
+<div id="outline-container-sec-7-1-9" class="outline-4">
+<h4 id="sec-7-1-9"><span class="section-number-4">7.1.9</span> <span class="todo TODO">TODO</span> HklEngine "zone"</h4>
 </div>
-<div id="outline-container-sec-7-1-11" class="outline-4">
-<h4 id="sec-7-1-11"><span class="section-number-4">7.1.11</span> <span class="todo TODO">TODO</span> HklEngine "custom"</h4>
-<div class="outline-text-4" id="text-7-1-11">
+<div id="outline-container-sec-7-1-10" class="outline-4">
+<h4 id="sec-7-1-10"><span class="section-number-4">7.1.10</span> <span class="todo TODO">TODO</span> HklEngine "custom"</h4>
+<div class="outline-text-4" id="text-7-1-10">
 <p>
 for now this pseudoaxis let you select the axis you
 want to use for the computation.
@@ -5232,22 +5556,22 @@ want to use for the computation.
 </div>
 </div>
 
-<div id="outline-container-sec-7-1-12" class="outline-4">
-<h4 id="sec-7-1-12"><span class="section-number-4">7.1.12</span> <span class="todo TODO">TODO</span> create a macro to help compare two real the right way</h4>
-<div class="outline-text-4" id="text-7-1-12">
+<div id="outline-container-sec-7-1-11" class="outline-4">
+<h4 id="sec-7-1-11"><span class="section-number-4">7.1.11</span> <span class="todo TODO">TODO</span> create a macro to help compare two real the right way</h4>
+<div class="outline-text-4" id="text-7-1-11">
 <p>
 fabs(a-b) < epsilon * max(1, abs(a), abs(b))
 </p>
 </div>
 </div>
 
-<div id="outline-container-sec-7-1-13" class="outline-4">
-<h4 id="sec-7-1-13"><span class="section-number-4">7.1.13</span> <span class="todo TODO">TODO</span> add an hkl_sample_set_lattice_unit()</h4>
+<div id="outline-container-sec-7-1-12" class="outline-4">
+<h4 id="sec-7-1-12"><span class="section-number-4">7.1.12</span> <span class="todo TODO">TODO</span> add an hkl_sample_set_lattice_unit()</h4>
 </div>
-<div id="outline-container-sec-7-1-14" class="outline-4">
-<h4 id="sec-7-1-14"><span class="section-number-4">7.1.14</span> <span class="todo TODO">TODO</span> SOLEIL SIXS</h4>
-<div class="outline-text-4" id="text-7-1-14">
-</div><ol class="org-ol"><li><span class="done DONE">DONE</span> find the right solutions.&#xa0;&#xa0;&#xa0;<span class="tag"><span class="zaxis">zaxis</span></span><br/><div class="outline-text-5" id="text-7-1-14-1">
+<div id="outline-container-sec-7-1-13" class="outline-4">
+<h4 id="sec-7-1-13"><span class="section-number-4">7.1.13</span> <span class="todo TODO">TODO</span> SOLEIL SIXS</h4>
+<div class="outline-text-4" id="text-7-1-13">
+</div><ol class="org-ol"><li><span class="done DONE">DONE</span> find the right solutions.&#xa0;&#xa0;&#xa0;<span class="tag"><span class="zaxis">zaxis</span></span><br/><div class="outline-text-5" id="text-7-1-13-1">
 <p>
 The cosinus and sinus properties are not enough to find the solution expected by the users.
 The idea is to use the Ewalds construction to generate a valid solution from the first one
@@ -5260,7 +5584,7 @@ special feature in the Mode. So it will be possible to add thoses special cases
 </div>
 </li>
 
-<li><span class="todo TODO">TODO</span> Add the DEP diffractometer geometry<br/><div class="outline-text-5" id="text-7-1-14-2">
+<li><span class="todo TODO">TODO</span> Add the DEP diffractometer geometry<br/><div class="outline-text-5" id="text-7-1-13-2">
 <p>
 This diffractometer is a Newport one based on the kappa 6 circles ones.
 But instead of a kappa head, they use an Hexapod head.
@@ -5270,9 +5594,9 @@ This head can be put horizontally or vertically.
 </li></ol>
 </div>
 
-<div id="outline-container-sec-7-1-15" class="outline-4">
-<h4 id="sec-7-1-15"><span class="section-number-4">7.1.15</span> <span class="todo TODO">TODO</span> generalisation of the z-axis hkl solver</h4>
-<div class="outline-text-4" id="text-7-1-15">
+<div id="outline-container-sec-7-1-14" class="outline-4">
+<h4 id="sec-7-1-14"><span class="section-number-4">7.1.14</span> <span class="todo TODO">TODO</span> generalisation of the z-axis hkl solver</h4>
+<div class="outline-text-4" id="text-7-1-14">
 <p>
 first we need the degenerated member of the Axis. thaht way it could be possible
 to find the last non degenerated axis for the detector fit.
@@ -5280,16 +5604,16 @@ to find the last non degenerated axis for the detector fit.
 </div>
 </div>
 
+<div id="outline-container-sec-7-1-15" class="outline-4">
+<h4 id="sec-7-1-15"><span class="section-number-4">7.1.15</span> <span class="todo TODO">TODO</span> investigate the prigo geometry.</h4>
+</div>
 <div id="outline-container-sec-7-1-16" class="outline-4">
-<h4 id="sec-7-1-16"><span class="section-number-4">7.1.16</span> <span class="todo TODO">TODO</span> investigate the prigo geometry.</h4>
+<h4 id="sec-7-1-16"><span class="section-number-4">7.1.16</span> <span class="todo TODO">TODO</span> augeas/elektra for the plugin configure part.</h4>
 </div>
 <div id="outline-container-sec-7-1-17" class="outline-4">
-<h4 id="sec-7-1-17"><span class="section-number-4">7.1.17</span> <span class="todo TODO">TODO</span> augeas/elektra for the plugin configure part.</h4>
-</div>
-<div id="outline-container-sec-7-1-18" class="outline-4">
-<h4 id="sec-7-1-18"><span class="section-number-4">7.1.18</span> <span class="todo TODO">TODO</span> logging</h4>
-<div class="outline-text-4" id="text-7-1-18">
-</div><ol class="org-ol"><li><span class="todo TODO">TODO</span> <code>[1/2]</code> add in a few methods.<br/><div class="outline-text-5" id="text-7-1-18-1">
+<h4 id="sec-7-1-17"><span class="section-number-4">7.1.17</span> <span class="todo TODO">TODO</span> logging</h4>
+<div class="outline-text-4" id="text-7-1-17">
+</div><ol class="org-ol"><li><span class="todo TODO">TODO</span> <code>[1/2]</code> add in a few methods.<br/><div class="outline-text-5" id="text-7-1-17-1">
 <ul class="org-ul">
 <li><code>[X]</code> hkl_pseudo_axes_values_set
 </li>
@@ -5299,7 +5623,7 @@ to find the last non degenerated axis for the detector fit.
 </div>
 </li>
 
-<li><span class="todo TODO">TODO</span> gir logging<br/><div class="outline-text-5" id="text-7-1-18-2">
+<li><span class="todo TODO">TODO</span> gir logging<br/><div class="outline-text-5" id="text-7-1-17-2">
 <p>
 It would be nice to generate the library logging using the .gir
 information. So instead of writing the logging code for each
@@ -5309,7 +5633,7 @@ purpose.
 </div>
 </li>
 
-<li><span class="todo TODO">TODO</span> parsable logging information.<br/><div class="outline-text-5" id="text-7-1-18-3">
+<li><span class="todo TODO">TODO</span> parsable logging information.<br/><div class="outline-text-5" id="text-7-1-17-3">
 <p>
 A parsable logging format would help to setup some re-play unit
 test. This way it could help during the developpement process
@@ -5320,9 +5644,9 @@ computation are ok.
 </li></ol>
 </div>
 
-<div id="outline-container-sec-7-1-19" class="outline-4">
-<h4 id="sec-7-1-19"><span class="section-number-4">7.1.19</span> <span class="todo TODO">TODO</span> performances</h4>
-<div class="outline-text-4" id="text-7-1-19">
+<div id="outline-container-sec-7-1-18" class="outline-4">
+<h4 id="sec-7-1-18"><span class="section-number-4">7.1.18</span> <span class="todo TODO">TODO</span> performances</h4>
+<div class="outline-text-4" id="text-7-1-18">
 <ul class="org-ul">
 <li>Investigate <a href="http://liboil.freedesktop.org/wiki/">liboil</a> to speed calculation (in HklVector, HklMatrix
 and HklQuaternion)
@@ -5424,8 +5748,8 @@ pseudo axes and the mode parameters.
 </div></div>
 <div id="postamble" class="status">
 <p class="author">Author: Picca Frédéric-Emmanuel</p>
-<p class="date">Created: 2015-05-04 lun. 10:39</p>
-<p class="creator"><a href="http://www.gnu.org/software/emacs/">Emacs</a> 24.4.1 (<a href="http://orgmode.org">Org</a> mode 8.0.7)</p>
+<p class="date">Created: 2015-06-30 mar. 14:34</p>
+<p class="creator"><a href="http://www.gnu.org/software/emacs/">Emacs</a> 24.4.1 (<a href="http://orgmode.org">Org</a> mode 8.2.10)</p>
 <p class="xhtml-validation"><a href="http://validator.w3.org/check?uri=referer">Validate XHTML 1.0</a></p>
 </div>
 </body>
diff --git a/Documentation/hkl.org.in b/Documentation/hkl.org.in
index a91f562..2cdd21c 100644
--- a/Documentation/hkl.org.in
+++ b/Documentation/hkl.org.in
@@ -383,6 +383,21 @@
 * PseudoAxes
   This section describe the calculations done by the library for the
   different kind of pseudo axes.
+** General process
+*** First Solution
+    The hkl library use the gsl library in order to find the first
+    valid solution.
+*** Multiplication of the solutions.
+    Once we have got the first solution different strategies are
+    applyed in order to generate more solutions.
+**** Geometry Multiplication
+     For kappa diffractometers, once you have one solution it is
+     possible to générate another one using a property of this
+     geometry. (Left arm and right arm).
+*** Restrains of the Solutions
+    We apply then some constrains to reduce these solutions to only a
+    bunch of acceptable ones. Usualy we take the axis range into
+    account.
 ** Eulerians to Kappa angles
 
    1st solution
@@ -686,14 +701,14 @@ git clone git://repo.or.cz/hkl.git
     the process a make target was written. You just need to type:
     #+BEGIN_SRC sh
       cd Documentation
-      make editdoc
+      make doc-edit
     #+END_SRC
     and start to contribute.
 
     If you do not have emacs, you can nevertheless contribute by
     editing the ~Documentation/hkl.org.in~ file which is text only.
 
-    The most expected contributions for now are:
+    The most expected contributions are for now:
     * english correctness
     * a nicer css
 * Bindings
@@ -814,6 +829,12 @@ git clone git://repo.or.cz/hkl.git
    #+END_QUOTE
 * Releases
 ** @VERSION@
+*** DONE =HklEngine=
+**** "emergence" <2015-06-22 lun.>
+     Add a new emergence engine which contain only one pseudo axis.
+     + =emergence= the outgoing beam emergence from the sample's surface.
+     + =azimuth= the sample's surface azimuth.
+** 4.99.99.1940 <2015-05-04 lun.>
 *** DONE =HklLattice= add an =hkl_lattice_volume_get=
 #+BEGIN_SRC c
   volume = hkl_lattice_volume_get(lattice);
@@ -867,8 +888,6 @@ git clone git://repo.or.cz/hkl.git
 #+END_SRC
 * Todo
 ** hkl
-*** TODO [#A] [0/2] HklEngine "read_only"
-    * [ ] "beta" emergence angle
 *** TODO [#A] HklSource
     Create a parameter for the wavelength. This is just internally for
     the futur trajectory system, so no need to change the signature of
diff --git a/Documentation/sphinx/Makefile.in b/Documentation/sphinx/Makefile.in
index 3f6baaf..9befdc0 100644
--- a/Documentation/sphinx/Makefile.in
+++ b/Documentation/sphinx/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.14.1 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
-# Foundation, Inc.
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -15,23 +14,51 @@
 
 @SET_MAKE@
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -51,7 +78,8 @@ POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
 subdir = Documentation/sphinx
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+	$(top_srcdir)/config/test-driver
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/m4/gtk-doc.m4 \
 	$(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
@@ -63,12 +91,18 @@ mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
 CONFIG_CLEAN_VPATH_FILES =
+AM_V_P = $(am__v_P_ at AM_V@)
+am__v_P_ = $(am__v_P_ at AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
 AM_V_GEN = $(am__v_GEN_ at AM_V@)
 am__v_GEN_ = $(am__v_GEN_ at AM_DEFAULT_V@)
-am__v_GEN_0 = @echo "  GEN   " $@;
+am__v_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
 AM_V_at = $(am__v_at_ at AM_V@)
 am__v_at_ = $(am__v_at_ at AM_DEFAULT_V@)
 am__v_at_0 = @
+am__v_at_1 = 
 SOURCES =
 DIST_SOURCES =
 am__can_run_installinfo = \
@@ -76,8 +110,211 @@ am__can_run_installinfo = \
     n|no|NO) false;; \
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
-am__tty_colors = \
-red=; grn=; lgn=; blu=; std=
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+am__tty_colors_dummy = \
+  mgn= red= grn= lgn= blu= brg= std=; \
+  am__color_tests=no
+am__tty_colors = { \
+  $(am__tty_colors_dummy); \
+  if test "X$(AM_COLOR_TESTS)" = Xno; then \
+    am__color_tests=no; \
+  elif test "X$(AM_COLOR_TESTS)" = Xalways; then \
+    am__color_tests=yes; \
+  elif test "X$$TERM" != Xdumb && { test -t 1; } 2>/dev/null; then \
+    am__color_tests=yes; \
+  fi; \
+  if test $$am__color_tests = yes; then \
+    red=''; \
+    grn=''; \
+    lgn=''; \
+    blu=''; \
+    mgn=''; \
+    brg=''; \
+    std=''; \
+  fi; \
+}
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+    $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+    *) f=$$p;; \
+  esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+  srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+  for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+  for p in $$list; do echo "$$p $$p"; done | \
+  sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+  $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+    if (++n[$$2] == $(am__install_max)) \
+      { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+    END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+  sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+  sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+  test -z "$$files" \
+    || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+    || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+         $(am__cd) "$$dir" && rm -f $$files; }; \
+  }
+am__recheck_rx = ^[ 	]*:recheck:[ 	]*
+am__global_test_result_rx = ^[ 	]*:global-test-result:[ 	]*
+am__copy_in_global_log_rx = ^[ 	]*:copy-in-global-log:[ 	]*
+# A command that, given a newline-separated list of test names on the
+# standard input, print the name of the tests that are to be re-run
+# upon "make recheck".
+am__list_recheck_tests = $(AWK) '{ \
+  recheck = 1; \
+  while ((rc = (getline line < ($$0 ".trs"))) != 0) \
+    { \
+      if (rc < 0) \
+        { \
+          if ((getline line2 < ($$0 ".log")) < 0) \
+	    recheck = 0; \
+          break; \
+        } \
+      else if (line ~ /$(am__recheck_rx)[nN][Oo]/) \
+        { \
+          recheck = 0; \
+          break; \
+        } \
+      else if (line ~ /$(am__recheck_rx)[yY][eE][sS]/) \
+        { \
+          break; \
+        } \
+    }; \
+  if (recheck) \
+    print $$0; \
+  close ($$0 ".trs"); \
+  close ($$0 ".log"); \
+}'
+# A command that, given a newline-separated list of test names on the
+# standard input, create the global log from their .trs and .log files.
+am__create_global_log = $(AWK) ' \
+function fatal(msg) \
+{ \
+  print "fatal: making $@: " msg | "cat >&2"; \
+  exit 1; \
+} \
+function rst_section(header) \
+{ \
+  print header; \
+  len = length(header); \
+  for (i = 1; i <= len; i = i + 1) \
+    printf "="; \
+  printf "\n\n"; \
+} \
+{ \
+  copy_in_global_log = 1; \
+  global_test_result = "RUN"; \
+  while ((rc = (getline line < ($$0 ".trs"))) != 0) \
+    { \
+      if (rc < 0) \
+         fatal("failed to read from " $$0 ".trs"); \
+      if (line ~ /$(am__global_test_result_rx)/) \
+        { \
+          sub("$(am__global_test_result_rx)", "", line); \
+          sub("[ 	]*$$", "", line); \
+          global_test_result = line; \
+        } \
+      else if (line ~ /$(am__copy_in_global_log_rx)[nN][oO]/) \
+        copy_in_global_log = 0; \
+    }; \
+  if (copy_in_global_log) \
+    { \
+      rst_section(global_test_result ": " $$0); \
+      while ((rc = (getline line < ($$0 ".log"))) != 0) \
+      { \
+        if (rc < 0) \
+          fatal("failed to read from " $$0 ".log"); \
+        print line; \
+      }; \
+      printf "\n"; \
+    }; \
+  close ($$0 ".trs"); \
+  close ($$0 ".log"); \
+}'
+# Restructured Text title.
+am__rst_title = { sed 's/.*/   &   /;h;s/./=/g;p;x;s/ *$$//;p;g' && echo; }
+# Solaris 10 'make', and several other traditional 'make' implementations,
+# pass "-e" to $(SHELL), and POSIX 2008 even requires this.  Work around it
+# by disabling -e (using the XSI extension "set +e") if it's set.
+am__sh_e_setup = case $$- in *e*) set +e;; esac
+# Default flags passed to test drivers.
+am__common_driver_flags = \
+  --color-tests "$$am__color_tests" \
+  --enable-hard-errors "$$am__enable_hard_errors" \
+  --expect-failure "$$am__expect_failure"
+# To be inserted before the command running the test.  Creates the
+# directory for the log if needed.  Stores in $dir the directory
+# containing $f, in $tst the test, in $log the log.  Executes the
+# developer- defined test setup AM_TESTS_ENVIRONMENT (if any), and
+# passes TESTS_ENVIRONMENT.  Set up options for the wrapper that
+# will run the test scripts (or their associated LOG_COMPILER, if
+# thy have one).
+am__check_pre = \
+$(am__sh_e_setup);					\
+$(am__vpath_adj_setup) $(am__vpath_adj)			\
+$(am__tty_colors);					\
+srcdir=$(srcdir); export srcdir;			\
+case "$@" in						\
+  */*) am__odir=`echo "./$@" | sed 's|/[^/]*$$||'`;;	\
+    *) am__odir=.;; 					\
+esac;							\
+test "x$$am__odir" = x"." || test -d "$$am__odir" 	\
+  || $(MKDIR_P) "$$am__odir" || exit $$?;		\
+if test -f "./$$f"; then dir=./;			\
+elif test -f "$$f"; then dir=;				\
+else dir="$(srcdir)/"; fi;				\
+tst=$$dir$$f; log='$@'; 				\
+if test -n '$(DISABLE_HARD_ERRORS)'; then		\
+  am__enable_hard_errors=no; 				\
+else							\
+  am__enable_hard_errors=yes; 				\
+fi; 							\
+case " $(XFAIL_TESTS) " in				\
+  *[\ \	]$$f[\ \	]* | *[\ \	]$$dir$$f[\ \	]*) \
+    am__expect_failure=yes;;				\
+  *)							\
+    am__expect_failure=no;;				\
+esac; 							\
+$(AM_TESTS_ENVIRONMENT) $(TESTS_ENVIRONMENT)
+# A shell command to get the names of the tests scripts with any registered
+# extension removed (i.e., equivalently, the names of the test logs, with
+# the '.log' extension removed).  The result is saved in the shell variable
+# '$bases'.  This honors runtime overriding of TESTS and TEST_LOGS.  Sadly,
+# we cannot use something simpler, involving e.g., "$(TEST_LOGS:.log=)",
+# since that might cause problem with VPATH rewrites for suffix-less tests.
+# See also 'test-harness-vpath-rewrite.sh' and 'test-trs-basic.sh'.
+am__set_TESTS_bases = \
+  bases='$(TEST_LOGS)'; \
+  bases=`for i in $$bases; do echo $$i; done | sed 's/\.log$$//'`; \
+  bases=`echo $$bases`
+RECHECK_LOGS = $(TEST_LOGS)
+AM_RECURSIVE_TARGETS = check recheck
+TEST_SUITE_LOG = test-suite.log
+TEST_EXTENSIONS = @EXEEXT@ .test
+LOG_DRIVER = $(SHELL) $(top_srcdir)/config/test-driver
+LOG_COMPILE = $(LOG_COMPILER) $(AM_LOG_FLAGS) $(LOG_FLAGS)
+am__set_b = \
+  case '$@' in \
+    */*) \
+      case '$*' in \
+        */*) b='$*';; \
+          *) b=`echo '$@' | sed 's/\.log$$//'`; \
+       esac;; \
+    *) \
+      b='$*';; \
+  esac
+am__test_logs1 = $(TESTS:=.log)
+am__test_logs2 = $(am__test_logs1:@EXEEXT at .log=.log)
+TEST_LOGS = $(am__test_logs2:.test.log=.log)
+TEST_LOG_DRIVER = $(SHELL) $(top_srcdir)/config/test-driver
+TEST_LOG_COMPILE = $(TEST_LOG_COMPILER) $(AM_TEST_LOG_FLAGS) \
+	$(TEST_LOG_FLAGS)
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ALLOCA = @ALLOCA@
@@ -130,6 +367,7 @@ GSL_CFLAGS = @GSL_CFLAGS@
 GSL_CONFIG = @GSL_CONFIG@
 GSL_LIBS = @GSL_LIBS@
 GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_CHECK_PATH = @GTKDOC_CHECK_PATH@
 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
 GTKDOC_MKPDF = @GTKDOC_MKPDF@
@@ -277,6 +515,7 @@ EXTRA_DIST = \
 all: all-am
 
 .SUFFIXES:
+.SUFFIXES: .log .test .test$(EXEEXT) .trs
 $(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
 	@for dep in $?; do \
 	  case '$(am__configure_deps)' in \
@@ -313,105 +552,189 @@ mostlyclean-libtool:
 
 clean-libtool:
 	-rm -rf .libs _libs
-tags: TAGS
-TAGS:
-
-ctags: CTAGS
-CTAGS:
-
-
-check-TESTS: $(TESTS)
-	@failed=0; all=0; xfail=0; xpass=0; skip=0; \
-	srcdir=$(srcdir); export srcdir; \
-	list=' $(TESTS) '; \
-	$(am__tty_colors); \
-	if test -n "$$list"; then \
-	  for tst in $$list; do \
-	    if test -f ./$$tst; then dir=./; \
-	    elif test -f $$tst; then dir=; \
-	    else dir="$(srcdir)/"; fi; \
-	    if $(TESTS_ENVIRONMENT) $${dir}$$tst; then \
-	      all=`expr $$all + 1`; \
-	      case " $(XFAIL_TESTS) " in \
-	      *[\ \	]$$tst[\ \	]*) \
-		xpass=`expr $$xpass + 1`; \
-		failed=`expr $$failed + 1`; \
-		col=$$red; res=XPASS; \
-	      ;; \
-	      *) \
-		col=$$grn; res=PASS; \
-	      ;; \
-	      esac; \
-	    elif test $$? -ne 77; then \
-	      all=`expr $$all + 1`; \
-	      case " $(XFAIL_TESTS) " in \
-	      *[\ \	]$$tst[\ \	]*) \
-		xfail=`expr $$xfail + 1`; \
-		col=$$lgn; res=XFAIL; \
-	      ;; \
-	      *) \
-		failed=`expr $$failed + 1`; \
-		col=$$red; res=FAIL; \
-	      ;; \
-	      esac; \
-	    else \
-	      skip=`expr $$skip + 1`; \
-	      col=$$blu; res=SKIP; \
-	    fi; \
-	    echo "$${col}$$res$${std}: $$tst"; \
-	  done; \
-	  if test "$$all" -eq 1; then \
-	    tests="test"; \
-	    All=""; \
-	  else \
-	    tests="tests"; \
-	    All="All "; \
+tags TAGS:
+
+ctags CTAGS:
+
+cscope cscopelist:
+
+
+# Recover from deleted '.trs' file; this should ensure that
+# "rm -f foo.log; make foo.trs" re-run 'foo.test', and re-create
+# both 'foo.log' and 'foo.trs'.  Break the recipe in two subshells
+# to avoid problems with "make -n".
+.log.trs:
+	rm -f $< $@
+	$(MAKE) $(AM_MAKEFLAGS) $<
+
+# Leading 'am--fnord' is there to ensure the list of targets does not
+# expand to empty, as could happen e.g. with make check TESTS=''.
+am--fnord $(TEST_LOGS) $(TEST_LOGS:.log=.trs): $(am__force_recheck)
+am--force-recheck:
+	@:
+
+$(TEST_SUITE_LOG): $(TEST_LOGS)
+	@$(am__set_TESTS_bases); \
+	am__f_ok () { test -f "$$1" && test -r "$$1"; }; \
+	redo_bases=`for i in $$bases; do \
+	              am__f_ok $$i.trs && am__f_ok $$i.log || echo $$i; \
+	            done`; \
+	if test -n "$$redo_bases"; then \
+	  redo_logs=`for i in $$redo_bases; do echo $$i.log; done`; \
+	  redo_results=`for i in $$redo_bases; do echo $$i.trs; done`; \
+	  if $(am__make_dryrun); then :; else \
+	    rm -f $$redo_logs && rm -f $$redo_results || exit 1; \
 	  fi; \
-	  if test "$$failed" -eq 0; then \
-	    if test "$$xfail" -eq 0; then \
-	      banner="$$All$$all $$tests passed"; \
-	    else \
-	      if test "$$xfail" -eq 1; then failures=failure; else failures=failures; fi; \
-	      banner="$$All$$all $$tests behaved as expected ($$xfail expected $$failures)"; \
-	    fi; \
-	  else \
-	    if test "$$xpass" -eq 0; then \
-	      banner="$$failed of $$all $$tests failed"; \
+	fi; \
+	if test -n "$$am__remaking_logs"; then \
+	  echo "fatal: making $(TEST_SUITE_LOG): possible infinite" \
+	       "recursion detected" >&2; \
+	else \
+	  am__remaking_logs=yes $(MAKE) $(AM_MAKEFLAGS) $$redo_logs; \
+	fi; \
+	if $(am__make_dryrun); then :; else \
+	  st=0;  \
+	  errmsg="fatal: making $(TEST_SUITE_LOG): failed to create"; \
+	  for i in $$redo_bases; do \
+	    test -f $$i.trs && test -r $$i.trs \
+	      || { echo "$$errmsg $$i.trs" >&2; st=1; }; \
+	    test -f $$i.log && test -r $$i.log \
+	      || { echo "$$errmsg $$i.log" >&2; st=1; }; \
+	  done; \
+	  test $$st -eq 0 || exit 1; \
+	fi
+	@$(am__sh_e_setup); $(am__tty_colors); $(am__set_TESTS_bases); \
+	ws='[ 	]'; \
+	results=`for b in $$bases; do echo $$b.trs; done`; \
+	test -n "$$results" || results=/dev/null; \
+	all=`  grep "^$$ws*:test-result:"           $$results | wc -l`; \
+	pass=` grep "^$$ws*:test-result:$$ws*PASS"  $$results | wc -l`; \
+	fail=` grep "^$$ws*:test-result:$$ws*FAIL"  $$results | wc -l`; \
+	skip=` grep "^$$ws*:test-result:$$ws*SKIP"  $$results | wc -l`; \
+	xfail=`grep "^$$ws*:test-result:$$ws*XFAIL" $$results | wc -l`; \
+	xpass=`grep "^$$ws*:test-result:$$ws*XPASS" $$results | wc -l`; \
+	error=`grep "^$$ws*:test-result:$$ws*ERROR" $$results | wc -l`; \
+	if test `expr $$fail + $$xpass + $$error` -eq 0; then \
+	  success=true; \
+	else \
+	  success=false; \
+	fi; \
+	br='==================='; br=$$br$$br$$br$$br; \
+	result_count () \
+	{ \
+	    if test x"$$1" = x"--maybe-color"; then \
+	      maybe_colorize=yes; \
+	    elif test x"$$1" = x"--no-color"; then \
+	      maybe_colorize=no; \
 	    else \
-	      if test "$$xpass" -eq 1; then passes=pass; else passes=passes; fi; \
-	      banner="$$failed of $$all $$tests did not behave as expected ($$xpass unexpected $$passes)"; \
+	      echo "$@: invalid 'result_count' usage" >&2; exit 4; \
 	    fi; \
-	  fi; \
-	  dashes="$$banner"; \
-	  skipped=""; \
-	  if test "$$skip" -ne 0; then \
-	    if test "$$skip" -eq 1; then \
-	      skipped="($$skip test was not run)"; \
+	    shift; \
+	    desc=$$1 count=$$2; \
+	    if test $$maybe_colorize = yes && test $$count -gt 0; then \
+	      color_start=$$3 color_end=$$std; \
 	    else \
-	      skipped="($$skip tests were not run)"; \
+	      color_start= color_end=; \
 	    fi; \
-	    test `echo "$$skipped" | wc -c` -le `echo "$$banner" | wc -c` || \
-	      dashes="$$skipped"; \
-	  fi; \
-	  report=""; \
-	  if test "$$failed" -ne 0 && test -n "$(PACKAGE_BUGREPORT)"; then \
-	    report="Please report to $(PACKAGE_BUGREPORT)"; \
-	    test `echo "$$report" | wc -c` -le `echo "$$banner" | wc -c` || \
-	      dashes="$$report"; \
-	  fi; \
-	  dashes=`echo "$$dashes" | sed s/./=/g`; \
-	  if test "$$failed" -eq 0; then \
-	    col="$$grn"; \
-	  else \
-	    col="$$red"; \
-	  fi; \
-	  echo "$${col}$$dashes$${std}"; \
-	  echo "$${col}$$banner$${std}"; \
-	  test -z "$$skipped" || echo "$${col}$$skipped$${std}"; \
-	  test -z "$$report" || echo "$${col}$$report$${std}"; \
-	  echo "$${col}$$dashes$${std}"; \
-	  test "$$failed" -eq 0; \
-	else :; fi
+	    echo "$${color_start}# $$desc $$count$${color_end}"; \
+	}; \
+	create_testsuite_report () \
+	{ \
+	  result_count $$1 "TOTAL:" $$all   "$$brg"; \
+	  result_count $$1 "PASS: " $$pass  "$$grn"; \
+	  result_count $$1 "SKIP: " $$skip  "$$blu"; \
+	  result_count $$1 "XFAIL:" $$xfail "$$lgn"; \
+	  result_count $$1 "FAIL: " $$fail  "$$red"; \
+	  result_count $$1 "XPASS:" $$xpass "$$red"; \
+	  result_count $$1 "ERROR:" $$error "$$mgn"; \
+	}; \
+	{								\
+	  echo "$(PACKAGE_STRING): $(subdir)/$(TEST_SUITE_LOG)" |	\
+	    $(am__rst_title);						\
+	  create_testsuite_report --no-color;				\
+	  echo;								\
+	  echo ".. contents:: :depth: 2";				\
+	  echo;								\
+	  for b in $$bases; do echo $$b; done				\
+	    | $(am__create_global_log);					\
+	} >$(TEST_SUITE_LOG).tmp || exit 1;				\
+	mv $(TEST_SUITE_LOG).tmp $(TEST_SUITE_LOG);			\
+	if $$success; then						\
+	  col="$$grn";							\
+	 else								\
+	  col="$$red";							\
+	  test x"$$VERBOSE" = x || cat $(TEST_SUITE_LOG);		\
+	fi;								\
+	echo "$${col}$$br$${std}"; 					\
+	echo "$${col}Testsuite summary for $(PACKAGE_STRING)$${std}";	\
+	echo "$${col}$$br$${std}"; 					\
+	create_testsuite_report --maybe-color;				\
+	echo "$$col$$br$$std";						\
+	if $$success; then :; else					\
+	  echo "$${col}See $(subdir)/$(TEST_SUITE_LOG)$${std}";		\
+	  if test -n "$(PACKAGE_BUGREPORT)"; then			\
+	    echo "$${col}Please report to $(PACKAGE_BUGREPORT)$${std}";	\
+	  fi;								\
+	  echo "$$col$$br$$std";					\
+	fi;								\
+	$$success || exit 1
+
+check-TESTS:
+	@list='$(RECHECK_LOGS)';           test -z "$$list" || rm -f $$list
+	@list='$(RECHECK_LOGS:.log=.trs)'; test -z "$$list" || rm -f $$list
+	@test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
+	@set +e; $(am__set_TESTS_bases); \
+	log_list=`for i in $$bases; do echo $$i.log; done`; \
+	trs_list=`for i in $$bases; do echo $$i.trs; done`; \
+	log_list=`echo $$log_list`; trs_list=`echo $$trs_list`; \
+	$(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) TEST_LOGS="$$log_list"; \
+	exit $$?;
+recheck: all 
+	@test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
+	@set +e; $(am__set_TESTS_bases); \
+	bases=`for i in $$bases; do echo $$i; done \
+	         | $(am__list_recheck_tests)` || exit 1; \
+	log_list=`for i in $$bases; do echo $$i.log; done`; \
+	log_list=`echo $$log_list`; \
+	$(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) \
+	        am__force_recheck=am--force-recheck \
+	        TEST_LOGS="$$log_list"; \
+	exit $$?
+source/bindings/python.py.log: source/bindings/python.py
+	@p='source/bindings/python.py'; \
+	b='source/bindings/python.py'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+source/pyplots/trajectory_full.py.log: source/pyplots/trajectory_full.py
+	@p='source/pyplots/trajectory_full.py'; \
+	b='source/pyplots/trajectory_full.py'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+source/pyplots/trajectory_simple.py.log: source/pyplots/trajectory_simple.py
+	@p='source/pyplots/trajectory_simple.py'; \
+	b='source/pyplots/trajectory_simple.py'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+.test.log:
+	@p='$<'; \
+	$(am__set_b); \
+	$(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+ at am__EXEEXT_TRUE@.test$(EXEEXT).log:
+ at am__EXEEXT_TRUE@	@p='$<'; \
+ at am__EXEEXT_TRUE@	$(am__set_b); \
+ at am__EXEEXT_TRUE@	$(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \
+ at am__EXEEXT_TRUE@	--log-file $$b.log --trs-file $$b.trs \
+ at am__EXEEXT_TRUE@	$(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \
+ at am__EXEEXT_TRUE@	"$$tst" $(AM_TESTS_FD_REDIRECT)
 
 distdir: $(DISTFILES)
 	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
@@ -468,6 +791,9 @@ install-strip:
 	    "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
 	fi
 mostlyclean-generic:
+	-test -z "$(TEST_LOGS)" || rm -f $(TEST_LOGS)
+	-test -z "$(TEST_LOGS:.log=.trs)" || rm -f $(TEST_LOGS:.log=.trs)
+	-test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
 
 clean-generic:
 
@@ -547,15 +873,16 @@ uninstall-am:
 .MAKE: check-am install-am install-strip
 
 .PHONY: all all-am check check-TESTS check-am clean clean-generic \
-	clean-libtool distclean distclean-generic distclean-libtool \
-	distdir dvi dvi-am html html-am info info-am install \
-	install-am install-data install-data-am install-dvi \
-	install-dvi-am install-exec install-exec-am install-html \
-	install-html-am install-info install-info-am install-man \
-	install-pdf install-pdf-am install-ps install-ps-am \
-	install-strip installcheck installcheck-am installdirs \
-	maintainer-clean maintainer-clean-generic mostlyclean \
-	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
+	clean-libtool cscopelist-am ctags-am distclean \
+	distclean-generic distclean-libtool distdir dvi dvi-am html \
+	html-am info info-am install install-am install-data \
+	install-data-am install-dvi install-dvi-am install-exec \
+	install-exec-am install-html install-html-am install-info \
+	install-info-am install-man install-pdf install-pdf-am \
+	install-ps install-ps-am install-strip installcheck \
+	installcheck-am installdirs maintainer-clean \
+	maintainer-clean-generic mostlyclean mostlyclean-generic \
+	mostlyclean-libtool pdf pdf-am ps ps-am recheck tags-am \
 	uninstall uninstall-am
 
 
diff --git a/INSTALL b/INSTALL
index a1e89e1..2099840 100644
--- a/INSTALL
+++ b/INSTALL
@@ -1,7 +1,7 @@
 Installation Instructions
 *************************
 
-Copyright (C) 1994-1996, 1999-2002, 2004-2011 Free Software Foundation,
+Copyright (C) 1994-1996, 1999-2002, 2004-2013 Free Software Foundation,
 Inc.
 
    Copying and distribution of this file, with or without modification,
@@ -12,8 +12,8 @@ without warranty of any kind.
 Basic Installation
 ==================
 
-   Briefly, the shell commands `./configure; make; make install' should
-configure, build, and install this package.  The following
+   Briefly, the shell command `./configure && make && make install'
+should configure, build, and install this package.  The following
 more-detailed instructions are generic; see the `README' file for
 instructions specific to this package.  Some packages provide this
 `INSTALL' file but do not implement all of the features documented
@@ -309,9 +309,10 @@ causes the specified `gcc' to be used as the C compiler (unless it is
 overridden in the site shell script).
 
 Unfortunately, this technique does not work for `CONFIG_SHELL' due to
-an Autoconf bug.  Until the bug is fixed you can use this workaround:
+an Autoconf limitation.  Until the limitation is lifted, you can use
+this workaround:
 
-     CONFIG_SHELL=/bin/bash /bin/bash ./configure CONFIG_SHELL=/bin/bash
+     CONFIG_SHELL=/bin/bash ./configure CONFIG_SHELL=/bin/bash
 
 `configure' Invocation
 ======================
@@ -367,4 +368,3 @@ operates.
 
 `configure' also accepts some other, not widely useful, options.  Run
 `configure --help' for more details.
-
diff --git a/Makefile.in b/Makefile.in
index f8d1a1c..7c2c268 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.14.1 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
-# Foundation, Inc.
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -16,23 +15,51 @@
 @SET_MAKE@
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -55,15 +82,20 @@ host_triplet = @host@
 @GUI_TRUE at am__append_2 = gui
 @HKL_DOC_TRUE at am__append_3 = Documentation
 subdir = .
-DIST_COMMON = README $(am__configure_deps) \
-	$(dist_installed_mainheader_DATA) $(srcdir)/Makefile.am \
-	$(srcdir)/Makefile.in $(srcdir)/config.h.in \
-	$(srcdir)/hkl.pc.in $(srcdir)/hkl3d.pc.in \
+DIST_COMMON = INSTALL NEWS README AUTHORS ChangeLog \
+	$(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+	$(top_srcdir)/configure $(am__configure_deps) \
+	$(srcdir)/config.h.in $(srcdir)/hkl.pc.in \
+	$(srcdir)/hkl3d.pc.in \
 	$(top_srcdir)/Documentation/sphinx/source/conf.py.in \
-	$(top_srcdir)/configure AUTHORS COPYING ChangeLog INSTALL NEWS \
+	$(dist_installed_mainheader_DATA) COPYING config/compile \
 	config/config.guess config/config.sub config/depcomp \
-	config/install-sh config/ltmain.sh config/mdate-sh \
-	config/missing config/texinfo.tex
+	config/install-sh config/mdate-sh config/missing \
+	config/texinfo.tex config/ltmain.sh \
+	$(top_srcdir)/config/compile $(top_srcdir)/config/config.guess \
+	$(top_srcdir)/config/config.sub \
+	$(top_srcdir)/config/install-sh $(top_srcdir)/config/ltmain.sh \
+	$(top_srcdir)/config/missing
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/m4/gtk-doc.m4 \
 	$(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
@@ -78,21 +110,28 @@ CONFIG_HEADER = config.h
 CONFIG_CLEAN_FILES = hkl.pc hkl3d.pc \
 	Documentation/sphinx/source/conf.py
 CONFIG_CLEAN_VPATH_FILES =
+AM_V_P = $(am__v_P_ at AM_V@)
+am__v_P_ = $(am__v_P_ at AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
 AM_V_GEN = $(am__v_GEN_ at AM_V@)
 am__v_GEN_ = $(am__v_GEN_ at AM_DEFAULT_V@)
-am__v_GEN_0 = @echo "  GEN   " $@;
+am__v_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
 AM_V_at = $(am__v_at_ at AM_V@)
 am__v_at_ = $(am__v_at_ at AM_DEFAULT_V@)
 am__v_at_0 = @
+am__v_at_1 = 
 SOURCES =
 DIST_SOURCES =
-RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
-	html-recursive info-recursive install-data-recursive \
-	install-dvi-recursive install-exec-recursive \
-	install-html-recursive install-info-recursive \
-	install-pdf-recursive install-ps-recursive install-recursive \
-	installcheck-recursive installdirs-recursive pdf-recursive \
-	ps-recursive uninstall-recursive
+RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \
+	ctags-recursive dvi-recursive html-recursive info-recursive \
+	install-data-recursive install-dvi-recursive \
+	install-exec-recursive install-html-recursive \
+	install-info-recursive install-pdf-recursive \
+	install-ps-recursive install-recursive installcheck-recursive \
+	installdirs-recursive pdf-recursive ps-recursive \
+	tags-recursive uninstall-recursive
 am__can_run_installinfo = \
   case $$AM_UPDATE_INFO_DIR in \
     n|no|NO) false;; \
@@ -131,11 +170,33 @@ DATA = $(dist_installed_mainheader_DATA) $(noinst_DATA) \
 	$(pkgconfig_DATA)
 RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive	\
   distclean-recursive maintainer-clean-recursive
-AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
-	$(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \
-	distdir dist dist-all distcheck
+am__recursive_targets = \
+  $(RECURSIVE_TARGETS) \
+  $(RECURSIVE_CLEAN_TARGETS) \
+  $(am__extra_recursive_targets)
+AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \
+	cscope distdir dist dist-all distcheck
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) \
+	$(LISP)config.h.in
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+CSCOPE = cscope
 DIST_SUBDIRS = hkl hkl3d data gui Documentation tests
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 distdir = $(PACKAGE)-$(VERSION)
@@ -146,6 +207,7 @@ am__remove_distdir = \
       && rm -rf "$(distdir)" \
       || { sleep 5 && rm -rf "$(distdir)"; }; \
   else :; fi
+am__post_remove_distdir = $(am__remove_distdir)
 am__relativize = \
   dir0=`pwd`; \
   sed_first='s,^\([^/]*\)/.*$$,\1,'; \
@@ -173,6 +235,7 @@ am__relativize = \
   reldir="$$dir2"
 DIST_ARCHIVES = $(distdir).tar.gz
 GZIP_ENV = --best
+DIST_TARGETS = dist-gzip
 distuninstallcheck_listfiles = find . -type f -print
 am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \
   | sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$'
@@ -228,6 +291,7 @@ GSL_CFLAGS = @GSL_CFLAGS@
 GSL_CONFIG = @GSL_CONFIG@
 GSL_LIBS = @GSL_LIBS@
 GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_CHECK_PATH = @GTKDOC_CHECK_PATH@
 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
 GTKDOC_MKPDF = @GTKDOC_MKPDF@
@@ -404,8 +468,8 @@ $(ACLOCAL_M4):  $(am__aclocal_m4_deps)
 $(am__aclocal_m4_deps):
 
 config.h: stamp-h1
-	@if test ! -f $@; then rm -f stamp-h1; else :; fi
-	@if test ! -f $@; then $(MAKE) $(AM_MAKEFLAGS) stamp-h1; else :; fi
+	@test -f $@ || rm -f stamp-h1
+	@test -f $@ || $(MAKE) $(AM_MAKEFLAGS) stamp-h1
 
 stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status
 	@rm -f stamp-h1
@@ -476,22 +540,25 @@ uninstall-pkgconfigDATA:
 	dir='$(DESTDIR)$(pkgconfigdir)'; $(am__uninstall_files_from_dir)
 
 # This directory's subdirectories are mostly independent; you can cd
-# into them and run `make' without going through this Makefile.
-# To change the values of `make' variables: instead of editing Makefiles,
-# (1) if the variable is set in `config.status', edit `config.status'
-#     (which will cause the Makefiles to be regenerated when you run `make');
-# (2) otherwise, pass the desired values on the `make' command line.
-$(RECURSIVE_TARGETS):
-	@fail= failcom='exit 1'; \
-	for f in x $$MAKEFLAGS; do \
-	  case $$f in \
-	    *=* | --[!k]*);; \
-	    *k*) failcom='fail=yes';; \
-	  esac; \
-	done; \
+# into them and run 'make' without going through this Makefile.
+# To change the values of 'make' variables: instead of editing Makefiles,
+# (1) if the variable is set in 'config.status', edit 'config.status'
+#     (which will cause the Makefiles to be regenerated when you run 'make');
+# (2) otherwise, pass the desired values on the 'make' command line.
+$(am__recursive_targets):
+	@fail=; \
+	if $(am__make_keepgoing); then \
+	  failcom='fail=yes'; \
+	else \
+	  failcom='exit 1'; \
+	fi; \
 	dot_seen=no; \
 	target=`echo $@ | sed s/-recursive//`; \
-	list='$(SUBDIRS)'; for subdir in $$list; do \
+	case "$@" in \
+	  distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
+	  *) list='$(SUBDIRS)' ;; \
+	esac; \
+	for subdir in $$list; do \
 	  echo "Making $$target in $$subdir"; \
 	  if test "$$subdir" = "."; then \
 	    dot_seen=yes; \
@@ -506,57 +573,12 @@ $(RECURSIVE_TARGETS):
 	  $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
 	fi; test -z "$$fail"
 
-$(RECURSIVE_CLEAN_TARGETS):
-	@fail= failcom='exit 1'; \
-	for f in x $$MAKEFLAGS; do \
-	  case $$f in \
-	    *=* | --[!k]*);; \
-	    *k*) failcom='fail=yes';; \
-	  esac; \
-	done; \
-	dot_seen=no; \
-	case "$@" in \
-	  distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
-	  *) list='$(SUBDIRS)' ;; \
-	esac; \
-	rev=''; for subdir in $$list; do \
-	  if test "$$subdir" = "."; then :; else \
-	    rev="$$subdir $$rev"; \
-	  fi; \
-	done; \
-	rev="$$rev ."; \
-	target=`echo $@ | sed s/-recursive//`; \
-	for subdir in $$rev; do \
-	  echo "Making $$target in $$subdir"; \
-	  if test "$$subdir" = "."; then \
-	    local_target="$$target-am"; \
-	  else \
-	    local_target="$$target"; \
-	  fi; \
-	  ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
-	  || eval $$failcom; \
-	done && test -z "$$fail"
-tags-recursive:
-	list='$(SUBDIRS)'; for subdir in $$list; do \
-	  test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
-	done
-ctags-recursive:
-	list='$(SUBDIRS)'; for subdir in $$list; do \
-	  test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
-	done
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-recursive
+TAGS: tags
 
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
-	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	mkid -fID $$unique
-tags: TAGS
-
-TAGS: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	set x; \
 	here=`pwd`; \
 	if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
@@ -572,12 +594,7 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
 	      set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
 	  fi; \
 	done; \
-	list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -589,15 +606,11 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
 	      $$unique; \
 	  fi; \
 	fi
-ctags: CTAGS
-CTAGS: ctags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
-	list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+ctags: ctags-recursive
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -606,9 +619,31 @@ GTAGS:
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscope: cscope.files
+	test ! -s cscope.files \
+	  || $(CSCOPE) -b -q $(AM_CSCOPEFLAGS) $(CSCOPEFLAGS) -i cscope.files $(CSCOPE_ARGS)
+clean-cscope:
+	-rm -f cscope.files
+cscope.files: clean-cscope cscopelist
+cscopelist: cscopelist-recursive
+
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+	-rm -f cscope.out cscope.in.out cscope.po.out cscope.files
 
 distdir: $(DISTFILES)
 	$(am__remove_distdir)
@@ -679,40 +714,42 @@ distdir: $(DISTFILES)
 	|| chmod -R a+r "$(distdir)"
 dist-gzip: distdir
 	tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
-	$(am__remove_distdir)
+	$(am__post_remove_distdir)
 
 dist-bzip2: distdir
 	tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c >$(distdir).tar.bz2
-	$(am__remove_distdir)
+	$(am__post_remove_distdir)
 
 dist-lzip: distdir
 	tardir=$(distdir) && $(am__tar) | lzip -c $${LZIP_OPT--9} >$(distdir).tar.lz
-	$(am__remove_distdir)
-
-dist-lzma: distdir
-	tardir=$(distdir) && $(am__tar) | lzma -9 -c >$(distdir).tar.lzma
-	$(am__remove_distdir)
+	$(am__post_remove_distdir)
 
 dist-xz: distdir
 	tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz
-	$(am__remove_distdir)
+	$(am__post_remove_distdir)
 
 dist-tarZ: distdir
+	@echo WARNING: "Support for shar distribution archives is" \
+	               "deprecated." >&2
+	@echo WARNING: "It will be removed altogether in Automake 2.0" >&2
 	tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z
-	$(am__remove_distdir)
+	$(am__post_remove_distdir)
 
 dist-shar: distdir
+	@echo WARNING: "Support for distribution archives compressed with" \
+		       "legacy program 'compress' is deprecated." >&2
+	@echo WARNING: "It will be removed altogether in Automake 2.0" >&2
 	shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz
-	$(am__remove_distdir)
+	$(am__post_remove_distdir)
 
 dist-zip: distdir
 	-rm -f $(distdir).zip
 	zip -rq $(distdir).zip $(distdir)
-	$(am__remove_distdir)
+	$(am__post_remove_distdir)
 
-dist dist-all: distdir
-	tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
-	$(am__remove_distdir)
+dist dist-all:
+	$(MAKE) $(AM_MAKEFLAGS) $(DIST_TARGETS) am__post_remove_distdir='@:'
+	$(am__post_remove_distdir)
 
 # This target untars the dist file and tries a VPATH configuration.  Then
 # it guarantees that the distribution is self-contained by making another
@@ -723,8 +760,6 @@ distcheck: dist
 	  GZIP=$(GZIP_ENV) gzip -dc $(distdir).tar.gz | $(am__untar) ;;\
 	*.tar.bz2*) \
 	  bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\
-	*.tar.lzma*) \
-	  lzma -dc $(distdir).tar.lzma | $(am__untar) ;;\
 	*.tar.lz*) \
 	  lzip -dc $(distdir).tar.lz | $(am__untar) ;;\
 	*.tar.xz*) \
@@ -736,18 +771,19 @@ distcheck: dist
 	*.zip*) \
 	  unzip $(distdir).zip ;;\
 	esac
-	chmod -R a-w $(distdir); chmod u+w $(distdir)
-	mkdir $(distdir)/_build
-	mkdir $(distdir)/_inst
+	chmod -R a-w $(distdir)
+	chmod u+w $(distdir)
+	mkdir $(distdir)/_build $(distdir)/_inst
 	chmod a-w $(distdir)
 	test -d $(distdir)/_build || exit 0; \
 	dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \
 	  && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \
 	  && am__cwd=`pwd` \
 	  && $(am__cd) $(distdir)/_build \
-	  && ../configure --srcdir=.. --prefix="$$dc_install_base" \
+	  && ../configure \
 	    $(AM_DISTCHECK_CONFIGURE_FLAGS) \
 	    $(DISTCHECK_CONFIGURE_FLAGS) \
+	    --srcdir=.. --prefix="$$dc_install_base" \
 	  && $(MAKE) $(AM_MAKEFLAGS) \
 	  && $(MAKE) $(AM_MAKEFLAGS) dvi \
 	  && $(MAKE) $(AM_MAKEFLAGS) check \
@@ -770,7 +806,7 @@ distcheck: dist
 	  && $(MAKE) $(AM_MAKEFLAGS) distcleancheck \
 	  && cd "$$am__cwd" \
 	  || exit 1
-	$(am__remove_distdir)
+	$(am__post_remove_distdir)
 	@(echo "$(distdir) archives ready for distribution: "; \
 	  list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \
 	  sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x'
@@ -910,26 +946,26 @@ ps-am:
 uninstall-am: uninstall-dist_installed_mainheaderDATA \
 	uninstall-pkgconfigDATA
 
-.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) all \
-	ctags-recursive install-am install-strip tags-recursive
-
-.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
-	all all-am am--refresh check check-am clean clean-generic \
-	clean-libtool ctags ctags-recursive dist dist-all dist-bzip2 \
-	dist-gzip dist-hook dist-lzip dist-lzma dist-shar dist-tarZ \
-	dist-xz dist-zip distcheck distclean distclean-generic \
-	distclean-hdr distclean-libtool distclean-local distclean-tags \
-	distcleancheck distdir distuninstallcheck dvi dvi-am html \
-	html-am info info-am install install-am install-data \
-	install-data-am install-dist_installed_mainheaderDATA \
-	install-dvi install-dvi-am install-exec install-exec-am \
-	install-html install-html-am install-info install-info-am \
-	install-man install-pdf install-pdf-am install-pkgconfigDATA \
-	install-ps install-ps-am install-strip installcheck \
-	installcheck-am installdirs installdirs-am maintainer-clean \
+.MAKE: $(am__recursive_targets) all install-am install-strip
+
+.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am \
+	am--refresh check check-am clean clean-cscope clean-generic \
+	clean-libtool cscope cscopelist-am ctags ctags-am dist \
+	dist-all dist-bzip2 dist-gzip dist-hook dist-lzip dist-shar \
+	dist-tarZ dist-xz dist-zip distcheck distclean \
+	distclean-generic distclean-hdr distclean-libtool \
+	distclean-local distclean-tags distcleancheck distdir \
+	distuninstallcheck dvi dvi-am html html-am info info-am \
+	install install-am install-data install-data-am \
+	install-dist_installed_mainheaderDATA install-dvi \
+	install-dvi-am install-exec install-exec-am install-html \
+	install-html-am install-info install-info-am install-man \
+	install-pdf install-pdf-am install-pkgconfigDATA install-ps \
+	install-ps-am install-strip installcheck installcheck-am \
+	installdirs installdirs-am maintainer-clean \
 	maintainer-clean-generic mostlyclean mostlyclean-generic \
-	mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \
-	uninstall uninstall-am uninstall-dist_installed_mainheaderDATA \
+	mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \
+	uninstall-am uninstall-dist_installed_mainheaderDATA \
 	uninstall-pkgconfigDATA
 
 
diff --git a/aclocal.m4 b/aclocal.m4
index 2df72bc..56431f7 100644
--- a/aclocal.m4
+++ b/aclocal.m4
@@ -1,8 +1,7 @@
-# generated automatically by aclocal 1.11.6 -*- Autoconf -*-
+# generated automatically by aclocal 1.14.1 -*- Autoconf -*-
+
+# Copyright (C) 1996-2013 Free Software Foundation, Inc.
 
-# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
-# 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software Foundation,
-# Inc.
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -12,13 +11,14 @@
 # even the implied warranty of MERCHANTABILITY or FITNESS FOR A
 # PARTICULAR PURPOSE.
 
+m4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], [])m4_defun([AC_CONFIG_MACRO_DIRS], [_AM_CONFIG_MACRO_DIRS($@)])])
 m4_ifndef([AC_AUTOCONF_VERSION],
   [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
 m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.69],,
 [m4_warning([this file was generated for autoconf 2.69.
 You have another version of autoconf.  It may work, but is not guaranteed to.
 If you have problems, you may need to regenerate the build system entirely.
-To do so, use the procedure documented by the package, typically `autoreconf'.])])
+To do so, use the procedure documented by the package, typically 'autoreconf'.])])
 
 # Configure paths for GLIB
 # Owen Taylor     1997-2001
@@ -115,13 +115,10 @@ int
 main ()
 {
   unsigned int major, minor, micro;
-  char *tmp_version;
 
   fclose (fopen ("conf.glibtest", "w"));
 
-  /* HP/UX 9 (%@#!) writes to sscanf strings */
-  tmp_version = g_strdup("$min_glib_version");
-  if (sscanf(tmp_version, "%u.%u.%u", &major, &minor, &micro) != 3) {
+  if (sscanf("$min_glib_version", "%u.%u.%u", &major, &minor, &micro) != 3) {
      printf("%s, bad version string\n", "$min_glib_version");
      exit(1);
    }
@@ -655,25 +652,77 @@ else
 fi[]dnl
 ])# PKG_CHECK_MODULES
 
-# Copyright (C) 2002, 2003, 2005, 2006, 2007, 2008, 2011 Free Software
-# Foundation, Inc.
+
+# PKG_INSTALLDIR(DIRECTORY)
+# -------------------------
+# Substitutes the variable pkgconfigdir as the location where a module
+# should install pkg-config .pc files. By default the directory is
+# $libdir/pkgconfig, but the default can be changed by passing
+# DIRECTORY. The user can override through the --with-pkgconfigdir
+# parameter.
+AC_DEFUN([PKG_INSTALLDIR],
+[m4_pushdef([pkg_default], [m4_default([$1], ['${libdir}/pkgconfig'])])
+m4_pushdef([pkg_description],
+    [pkg-config installation directory @<:@]pkg_default[@:>@])
+AC_ARG_WITH([pkgconfigdir],
+    [AS_HELP_STRING([--with-pkgconfigdir], pkg_description)],,
+    [with_pkgconfigdir=]pkg_default)
+AC_SUBST([pkgconfigdir], [$with_pkgconfigdir])
+m4_popdef([pkg_default])
+m4_popdef([pkg_description])
+]) dnl PKG_INSTALLDIR
+
+
+# PKG_NOARCH_INSTALLDIR(DIRECTORY)
+# -------------------------
+# Substitutes the variable noarch_pkgconfigdir as the location where a
+# module should install arch-independent pkg-config .pc files. By
+# default the directory is $datadir/pkgconfig, but the default can be
+# changed by passing DIRECTORY. The user can override through the
+# --with-noarch-pkgconfigdir parameter.
+AC_DEFUN([PKG_NOARCH_INSTALLDIR],
+[m4_pushdef([pkg_default], [m4_default([$1], ['${datadir}/pkgconfig'])])
+m4_pushdef([pkg_description],
+    [pkg-config arch-independent installation directory @<:@]pkg_default[@:>@])
+AC_ARG_WITH([noarch-pkgconfigdir],
+    [AS_HELP_STRING([--with-noarch-pkgconfigdir], pkg_description)],,
+    [with_noarch_pkgconfigdir=]pkg_default)
+AC_SUBST([noarch_pkgconfigdir], [$with_noarch_pkgconfigdir])
+m4_popdef([pkg_default])
+m4_popdef([pkg_description])
+]) dnl PKG_NOARCH_INSTALLDIR
+
+
+# PKG_CHECK_VAR(VARIABLE, MODULE, CONFIG-VARIABLE,
+# [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND])
+# -------------------------------------------
+# Retrieves the value of the pkg-config variable for the given module.
+AC_DEFUN([PKG_CHECK_VAR],
+[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
+AC_ARG_VAR([$1], [value of $3 for $2, overriding pkg-config])dnl
+
+_PKG_CONFIG([$1], [variable="][$3]["], [$2])
+AS_VAR_COPY([$1], [pkg_cv_][$1])
+
+AS_VAR_IF([$1], [""], [$5], [$4])dnl
+])# PKG_CHECK_VAR
+
+# Copyright (C) 2002-2013 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# serial 1
-
 # AM_AUTOMAKE_VERSION(VERSION)
 # ----------------------------
 # Automake X.Y traces this macro to ensure aclocal.m4 has been
 # generated from the m4 files accompanying Automake X.Y.
 # (This private macro should not be called outside this file.)
 AC_DEFUN([AM_AUTOMAKE_VERSION],
-[am__api_version='1.11'
+[am__api_version='1.14'
 dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to
 dnl require some minimum version.  Point them to the right macro.
-m4_if([$1], [1.11.6], [],
+m4_if([$1], [1.14.1], [],
       [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl
 ])
 
@@ -689,24 +738,22 @@ m4_define([_AM_AUTOCONF_VERSION], [])
 # Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced.
 # This function is AC_REQUIREd by AM_INIT_AUTOMAKE.
 AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
-[AM_AUTOMAKE_VERSION([1.11.6])dnl
+[AM_AUTOMAKE_VERSION([1.14.1])dnl
 m4_ifndef([AC_AUTOCONF_VERSION],
   [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
 _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))])
 
 # AM_AUX_DIR_EXPAND                                         -*- Autoconf -*-
 
-# Copyright (C) 2001, 2003, 2005, 2011 Free Software Foundation, Inc.
+# Copyright (C) 2001-2013 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# serial 1
-
 # For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets
-# $ac_aux_dir to `$srcdir/foo'.  In other projects, it is set to
-# `$srcdir', `$srcdir/..', or `$srcdir/../..'.
+# $ac_aux_dir to '$srcdir/foo'.  In other projects, it is set to
+# '$srcdir', '$srcdir/..', or '$srcdir/../..'.
 #
 # Of course, Automake must honor this variable whenever it calls a
 # tool from the auxiliary directory.  The problem is that $srcdir (and
@@ -725,7 +772,7 @@ _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))])
 #
 # The reason of the latter failure is that $top_srcdir and $ac_aux_dir
 # are both prefixed by $srcdir.  In an in-source build this is usually
-# harmless because $srcdir is `.', but things will broke when you
+# harmless because $srcdir is '.', but things will broke when you
 # start a VPATH build or use an absolute $srcdir.
 #
 # So we could use something similar to $top_srcdir/$ac_aux_dir/missing,
@@ -743,22 +790,19 @@ _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))])
 # configured tree to be moved without reconfiguration.
 
 AC_DEFUN([AM_AUX_DIR_EXPAND],
-[dnl Rely on autoconf to set up CDPATH properly.
-AC_PREREQ([2.50])dnl
-# expand $ac_aux_dir to an absolute path
-am_aux_dir=`cd $ac_aux_dir && pwd`
+[AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl
+# Expand $ac_aux_dir to an absolute path.
+am_aux_dir=`cd "$ac_aux_dir" && pwd`
 ])
 
 # AM_COND_IF                                            -*- Autoconf -*-
 
-# Copyright (C) 2008, 2010 Free Software Foundation, Inc.
+# Copyright (C) 2008-2013 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# serial 3
-
 # _AM_COND_IF
 # _AM_COND_ELSE
 # _AM_COND_ENDIF
@@ -768,7 +812,6 @@ m4_define([_AM_COND_IF])
 m4_define([_AM_COND_ELSE])
 m4_define([_AM_COND_ENDIF])
 
-
 # AM_COND_IF(COND, [IF-TRUE], [IF-FALSE])
 # ---------------------------------------
 # If the shell condition COND is true, execute IF-TRUE, otherwise execute
@@ -791,22 +834,19 @@ fi[]dnl
 
 # AM_CONDITIONAL                                            -*- Autoconf -*-
 
-# Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005, 2006, 2008
-# Free Software Foundation, Inc.
+# Copyright (C) 1997-2013 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# serial 9
-
 # AM_CONDITIONAL(NAME, SHELL-CONDITION)
 # -------------------------------------
 # Define a conditional.
 AC_DEFUN([AM_CONDITIONAL],
-[AC_PREREQ(2.52)dnl
- ifelse([$1], [TRUE],  [AC_FATAL([$0: invalid condition: $1])],
-	[$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl
+[AC_PREREQ([2.52])dnl
+ m4_if([$1], [TRUE],  [AC_FATAL([$0: invalid condition: $1])],
+       [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl
 AC_SUBST([$1_TRUE])dnl
 AC_SUBST([$1_FALSE])dnl
 _AM_SUBST_NOTMAKE([$1_TRUE])dnl
@@ -825,16 +865,14 @@ AC_CONFIG_COMMANDS_PRE(
 Usually this means the macro was only invoked conditionally.]])
 fi])])
 
-# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2009,
-# 2010, 2011 Free Software Foundation, Inc.
+# Copyright (C) 1999-2013 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# serial 12
 
-# There are a few dirty hacks below to avoid letting `AC_PROG_CC' be
+# There are a few dirty hacks below to avoid letting 'AC_PROG_CC' be
 # written in clear, in which case automake, when reading aclocal.m4,
 # will think it sees a *use*, and therefore will trigger all it's
 # C support machinery.  Also note that it means that autoscan, seeing
@@ -844,7 +882,7 @@ fi])])
 # _AM_DEPENDENCIES(NAME)
 # ----------------------
 # See how the compiler implements dependency checking.
-# NAME is "CC", "CXX", "GCJ", or "OBJC".
+# NAME is "CC", "CXX", "OBJC", "OBJCXX", "UPC", or "GJC".
 # We try a few techniques and use that to set a single cache variable.
 #
 # We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was
@@ -857,12 +895,13 @@ AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl
 AC_REQUIRE([AM_MAKE_INCLUDE])dnl
 AC_REQUIRE([AM_DEP_TRACK])dnl
 
-ifelse([$1], CC,   [depcc="$CC"   am_compiler_list=],
-       [$1], CXX,  [depcc="$CXX"  am_compiler_list=],
-       [$1], OBJC, [depcc="$OBJC" am_compiler_list='gcc3 gcc'],
-       [$1], UPC,  [depcc="$UPC"  am_compiler_list=],
-       [$1], GCJ,  [depcc="$GCJ"  am_compiler_list='gcc3 gcc'],
-                   [depcc="$$1"   am_compiler_list=])
+m4_if([$1], [CC],   [depcc="$CC"   am_compiler_list=],
+      [$1], [CXX],  [depcc="$CXX"  am_compiler_list=],
+      [$1], [OBJC], [depcc="$OBJC" am_compiler_list='gcc3 gcc'],
+      [$1], [OBJCXX], [depcc="$OBJCXX" am_compiler_list='gcc3 gcc'],
+      [$1], [UPC],  [depcc="$UPC"  am_compiler_list=],
+      [$1], [GCJ],  [depcc="$GCJ"  am_compiler_list='gcc3 gcc'],
+                    [depcc="$$1"   am_compiler_list=])
 
 AC_CACHE_CHECK([dependency style of $depcc],
                [am_cv_$1_dependencies_compiler_type],
@@ -870,8 +909,8 @@ AC_CACHE_CHECK([dependency style of $depcc],
   # We make a subdir and do the tests there.  Otherwise we can end up
   # making bogus files that we don't know about and never remove.  For
   # instance it was reported that on HP-UX the gcc test will end up
-  # making a dummy file named `D' -- because `-MD' means `put the output
-  # in D'.
+  # making a dummy file named 'D' -- because '-MD' means "put the output
+  # in D".
   rm -rf conftest.dir
   mkdir conftest.dir
   # Copy depcomp to subdir because otherwise we won't find it if we're
@@ -911,16 +950,16 @@ AC_CACHE_CHECK([dependency style of $depcc],
     : > sub/conftest.c
     for i in 1 2 3 4 5 6; do
       echo '#include "conftst'$i'.h"' >> sub/conftest.c
-      # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with
-      # Solaris 8's {/usr,}/bin/sh.
-      touch sub/conftst$i.h
+      # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with
+      # Solaris 10 /bin/sh.
+      echo '/* dummy */' > sub/conftst$i.h
     done
     echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
 
-    # We check with `-c' and `-o' for the sake of the "dashmstdout"
+    # We check with '-c' and '-o' for the sake of the "dashmstdout"
     # mode.  It turns out that the SunPro C++ compiler does not properly
-    # handle `-M -o', and we need to detect this.  Also, some Intel
-    # versions had trouble with output in subdirs
+    # handle '-M -o', and we need to detect this.  Also, some Intel
+    # versions had trouble with output in subdirs.
     am__obj=sub/conftest.${OBJEXT-o}
     am__minus_obj="-o $am__obj"
     case $depmode in
@@ -929,8 +968,8 @@ AC_CACHE_CHECK([dependency style of $depcc],
       test "$am__universal" = false || continue
       ;;
     nosideeffect)
-      # after this tag, mechanisms are not by side-effect, so they'll
-      # only be used when explicitly requested
+      # After this tag, mechanisms are not by side-effect, so they'll
+      # only be used when explicitly requested.
       if test "x$enable_dependency_tracking" = xyes; then
 	continue
       else
@@ -938,7 +977,7 @@ AC_CACHE_CHECK([dependency style of $depcc],
       fi
       ;;
     msvc7 | msvc7msys | msvisualcpp | msvcmsys)
-      # This compiler won't grok `-c -o', but also, the minuso test has
+      # This compiler won't grok '-c -o', but also, the minuso test has
       # not run yet.  These depmodes are late enough in the game, and
       # so weak that their functioning should not be impacted.
       am__obj=conftest.${OBJEXT-o}
@@ -986,7 +1025,7 @@ AM_CONDITIONAL([am__fastdep$1], [
 # AM_SET_DEPDIR
 # -------------
 # Choose a directory name for dependency files.
-# This macro is AC_REQUIREd in _AM_DEPENDENCIES
+# This macro is AC_REQUIREd in _AM_DEPENDENCIES.
 AC_DEFUN([AM_SET_DEPDIR],
 [AC_REQUIRE([AM_SET_LEADING_DOT])dnl
 AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl
@@ -996,9 +1035,13 @@ AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl
 # AM_DEP_TRACK
 # ------------
 AC_DEFUN([AM_DEP_TRACK],
-[AC_ARG_ENABLE(dependency-tracking,
-[  --disable-dependency-tracking  speeds up one-time build
-  --enable-dependency-tracking   do not reject slow dependency extractors])
+[AC_ARG_ENABLE([dependency-tracking], [dnl
+AS_HELP_STRING(
+  [--enable-dependency-tracking],
+  [do not reject slow dependency extractors])
+AS_HELP_STRING(
+  [--disable-dependency-tracking],
+  [speeds up one-time build])])
 if test "x$enable_dependency_tracking" != xno; then
   am_depcomp="$ac_aux_dir/depcomp"
   AMDEPBACKSLASH='\'
@@ -1013,20 +1056,18 @@ _AM_SUBST_NOTMAKE([am__nodep])dnl
 
 # Generate code to set up dependency tracking.              -*- Autoconf -*-
 
-# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2008
-# Free Software Foundation, Inc.
+# Copyright (C) 1999-2013 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-#serial 5
 
 # _AM_OUTPUT_DEPENDENCY_COMMANDS
 # ------------------------------
 AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS],
 [{
-  # Autoconf 2.62 quotes --file arguments for eval, but not when files
+  # Older Autoconf quotes --file arguments for eval, but not when files
   # are listed without --file.  Let's play safe and only enable the eval
   # if we detect the quoting.
   case $CONFIG_FILES in
@@ -1039,7 +1080,7 @@ AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS],
     # 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.
-    # We used to match only the files named `Makefile.in', but
+    # We used to match only the files named 'Makefile.in', but
     # some people rename them; so instead we look at the file content.
     # Grep'ing the first line is not enough: some people post-process
     # each Makefile.in and add a new line on top of each file to say so.
@@ -1051,21 +1092,19 @@ AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS],
       continue
     fi
     # Extract the definition of DEPDIR, am__include, and am__quote
-    # from the Makefile without running `make'.
+    # from the Makefile without running 'make'.
     DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
     test -z "$DEPDIR" && continue
     am__include=`sed -n 's/^am__include = //p' < "$mf"`
-    test -z "am__include" && continue
+    test -z "$am__include" && continue
     am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
-    # When using ansi2knr, U may be empty or an underscore; expand it
-    U=`sed -n 's/^U = //p' < "$mf"`
     # Find all dependency output files, they are included files with
     # $(DEPDIR) in their names.  We invoke sed twice because it is the
     # simplest approach to changing $(DEPDIR) to its actual value in the
     # expansion.
     for file in `sed -n "
       s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
-	 sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do
+	 sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g'`; do
       # Make sure the directory exists.
       test -f "$dirpart/$file" && continue
       fdir=`AS_DIRNAME(["$file"])`
@@ -1083,7 +1122,7 @@ AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS],
 # This macro should only be invoked once -- use via AC_REQUIRE.
 #
 # This code is only required when automatic dependency tracking
-# is enabled.  FIXME.  This creates each `.P' file that we will
+# is enabled.  FIXME.  This creates each '.P' file that we will
 # need in order to bootstrap the dependency handling code.
 AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS],
 [AC_CONFIG_COMMANDS([depfiles],
@@ -1093,18 +1132,21 @@ AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS],
 
 # Do all the work for Automake.                             -*- Autoconf -*-
 
-# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
-# 2005, 2006, 2008, 2009 Free Software Foundation, Inc.
+# Copyright (C) 1996-2013 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# serial 16
-
 # This macro actually does too much.  Some checks are only needed if
 # your package does certain things.  But this isn't really a big deal.
 
+dnl Redefine AC_PROG_CC to automatically invoke _AM_PROG_CC_C_O.
+m4_define([AC_PROG_CC],
+m4_defn([AC_PROG_CC])
+[_AM_PROG_CC_C_O
+])
+
 # AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE])
 # AM_INIT_AUTOMAKE([OPTIONS])
 # -----------------------------------------------
@@ -1117,7 +1159,7 @@ AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS],
 # arguments mandatory, and then we can depend on a new Autoconf
 # release and drop the old call support.
 AC_DEFUN([AM_INIT_AUTOMAKE],
-[AC_PREREQ([2.62])dnl
+[AC_PREREQ([2.65])dnl
 dnl Autoconf wants to disallow AM_ names.  We explicitly allow
 dnl the ones we care about.
 m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl
@@ -1146,31 +1188,40 @@ AC_SUBST([CYGPATH_W])
 # Define the identity of the package.
 dnl Distinguish between old-style and new-style calls.
 m4_ifval([$2],
-[m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl
+[AC_DIAGNOSE([obsolete],
+             [$0: two- and three-arguments forms are deprecated.])
+m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl
  AC_SUBST([PACKAGE], [$1])dnl
  AC_SUBST([VERSION], [$2])],
 [_AM_SET_OPTIONS([$1])dnl
 dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT.
-m4_if(m4_ifdef([AC_PACKAGE_NAME], 1)m4_ifdef([AC_PACKAGE_VERSION], 1), 11,,
+m4_if(
+  m4_ifdef([AC_PACKAGE_NAME], [ok]):m4_ifdef([AC_PACKAGE_VERSION], [ok]),
+  [ok:ok],,
   [m4_fatal([AC_INIT should be called with package and version arguments])])dnl
  AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl
  AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl
 
 _AM_IF_OPTION([no-define],,
-[AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package])
- AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])])dnl
+[AC_DEFINE_UNQUOTED([PACKAGE], ["$PACKAGE"], [Name of package])
+ AC_DEFINE_UNQUOTED([VERSION], ["$VERSION"], [Version number of package])])dnl
 
 # Some tools Automake needs.
 AC_REQUIRE([AM_SANITY_CHECK])dnl
 AC_REQUIRE([AC_ARG_PROGRAM])dnl
-AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version})
-AM_MISSING_PROG(AUTOCONF, autoconf)
-AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version})
-AM_MISSING_PROG(AUTOHEADER, autoheader)
-AM_MISSING_PROG(MAKEINFO, makeinfo)
+AM_MISSING_PROG([ACLOCAL], [aclocal-${am__api_version}])
+AM_MISSING_PROG([AUTOCONF], [autoconf])
+AM_MISSING_PROG([AUTOMAKE], [automake-${am__api_version}])
+AM_MISSING_PROG([AUTOHEADER], [autoheader])
+AM_MISSING_PROG([MAKEINFO], [makeinfo])
 AC_REQUIRE([AM_PROG_INSTALL_SH])dnl
 AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl
-AC_REQUIRE([AM_PROG_MKDIR_P])dnl
+AC_REQUIRE([AC_PROG_MKDIR_P])dnl
+# For better backward compatibility.  To be removed once Automake 1.9.x
+# dies out for good.  For more background, see:
+# <http://lists.gnu.org/archive/html/automake/2012-07/msg00001.html>
+# <http://lists.gnu.org/archive/html/automake/2012-07/msg00014.html>
+AC_SUBST([mkdir_p], ['$(MKDIR_P)'])
 # We need awk for the "check" target.  The system "awk" is bad on
 # some platforms.
 AC_REQUIRE([AC_PROG_AWK])dnl
@@ -1181,34 +1232,79 @@ _AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])],
 			     [_AM_PROG_TAR([v7])])])
 _AM_IF_OPTION([no-dependencies],,
 [AC_PROVIDE_IFELSE([AC_PROG_CC],
-		  [_AM_DEPENDENCIES(CC)],
-		  [define([AC_PROG_CC],
-			  defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl
+		  [_AM_DEPENDENCIES([CC])],
+		  [m4_define([AC_PROG_CC],
+			     m4_defn([AC_PROG_CC])[_AM_DEPENDENCIES([CC])])])dnl
 AC_PROVIDE_IFELSE([AC_PROG_CXX],
-		  [_AM_DEPENDENCIES(CXX)],
-		  [define([AC_PROG_CXX],
-			  defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl
+		  [_AM_DEPENDENCIES([CXX])],
+		  [m4_define([AC_PROG_CXX],
+			     m4_defn([AC_PROG_CXX])[_AM_DEPENDENCIES([CXX])])])dnl
 AC_PROVIDE_IFELSE([AC_PROG_OBJC],
-		  [_AM_DEPENDENCIES(OBJC)],
-		  [define([AC_PROG_OBJC],
-			  defn([AC_PROG_OBJC])[_AM_DEPENDENCIES(OBJC)])])dnl
+		  [_AM_DEPENDENCIES([OBJC])],
+		  [m4_define([AC_PROG_OBJC],
+			     m4_defn([AC_PROG_OBJC])[_AM_DEPENDENCIES([OBJC])])])dnl
+AC_PROVIDE_IFELSE([AC_PROG_OBJCXX],
+		  [_AM_DEPENDENCIES([OBJCXX])],
+		  [m4_define([AC_PROG_OBJCXX],
+			     m4_defn([AC_PROG_OBJCXX])[_AM_DEPENDENCIES([OBJCXX])])])dnl
 ])
-_AM_IF_OPTION([silent-rules], [AC_REQUIRE([AM_SILENT_RULES])])dnl
-dnl The `parallel-tests' driver may need to know about EXEEXT, so add the
-dnl `am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen.  This macro
-dnl is hooked onto _AC_COMPILER_EXEEXT early, see below.
+AC_REQUIRE([AM_SILENT_RULES])dnl
+dnl The testsuite driver may need to know about EXEEXT, so add the
+dnl 'am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen.  This
+dnl macro is hooked onto _AC_COMPILER_EXEEXT early, see below.
 AC_CONFIG_COMMANDS_PRE(dnl
 [m4_provide_if([_AM_COMPILER_EXEEXT],
   [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl
+
+# POSIX will say in a future version that running "rm -f" with no argument
+# is OK; and we want to be able to make that assumption in our Makefile
+# recipes.  So use an aggressive probe to check that the usage we want is
+# actually supported "in the wild" to an acceptable degree.
+# See automake bug#10828.
+# To make any issue more visible, cause the running configure to be aborted
+# by default if the 'rm' program in use doesn't match our expectations; the
+# user can still override this though.
+if rm -f && rm -fr && rm -rf; then : OK; else
+  cat >&2 <<'END'
+Oops!
+
+Your 'rm' program seems unable to run without file operands specified
+on the command line, even when the '-f' option is present.  This is contrary
+to the behaviour of most rm programs out there, and not conforming with
+the upcoming POSIX standard: <http://austingroupbugs.net/view.php?id=542>
+
+Please tell bug-automake at gnu.org about your system, including the value
+of your $PATH and any error possibly output before this message.  This
+can help us improve future automake versions.
+
+END
+  if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then
+    echo 'Configuration will proceed anyway, since you have set the' >&2
+    echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2
+    echo >&2
+  else
+    cat >&2 <<'END'
+Aborting the configuration process, to ensure you take notice of the issue.
+
+You can download and install GNU coreutils to get an 'rm' implementation
+that behaves properly: <http://www.gnu.org/software/coreutils/>.
+
+If you want to complete the configuration process using your problematic
+'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM
+to "yes", and re-run configure.
+
+END
+    AC_MSG_ERROR([Your 'rm' program is bad, sorry.])
+  fi
+fi
 ])
 
-dnl Hook into `_AC_COMPILER_EXEEXT' early to learn its expansion.  Do not
+dnl Hook into '_AC_COMPILER_EXEEXT' early to learn its expansion.  Do not
 dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further
 dnl mangled by Autoconf and run in a shell conditional statement.
 m4_define([_AC_COMPILER_EXEEXT],
 m4_defn([_AC_COMPILER_EXEEXT])[m4_provide([_AM_COMPILER_EXEEXT])])
 
-
 # When config.status generates a header, we must update the stamp-h file.
 # This file resides in the same directory as the config header
 # that is generated.  The stamp files are numbered to have different names.
@@ -1230,15 +1326,12 @@ for _am_header in $config_headers :; do
 done
 echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count])
 
-# Copyright (C) 2001, 2003, 2005, 2008, 2011 Free Software Foundation,
-# Inc.
+# Copyright (C) 2001-2013 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# serial 1
-
 # AM_PROG_INSTALL_SH
 # ------------------
 # Define $install_sh.
@@ -1252,16 +1345,14 @@ if test x"${install_sh}" != xset; then
     install_sh="\${SHELL} $am_aux_dir/install-sh"
   esac
 fi
-AC_SUBST(install_sh)])
+AC_SUBST([install_sh])])
 
-# Copyright (C) 2003, 2005  Free Software Foundation, Inc.
+# Copyright (C) 2003-2013 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# serial 2
-
 # Check whether the underlying file-system supports filenames
 # with a leading dot.  For instance MS-DOS doesn't.
 AC_DEFUN([AM_SET_LEADING_DOT],
@@ -1277,14 +1368,12 @@ AC_SUBST([am__leading_dot])])
 
 # Check to see how 'make' treats includes.	            -*- Autoconf -*-
 
-# Copyright (C) 2001, 2002, 2003, 2005, 2009  Free Software Foundation, Inc.
+# Copyright (C) 2001-2013 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# serial 4
-
 # AM_MAKE_INCLUDE()
 # -----------------
 # Check to see how make treats includes.
@@ -1302,7 +1391,7 @@ am__quote=
 _am_result=none
 # First try GNU make style include.
 echo "include confinc" > confmf
-# Ignore all kinds of additional output from `make'.
+# Ignore all kinds of additional output from 'make'.
 case `$am_make -s -f confmf 2> /dev/null` in #(
 *the\ am__doit\ target*)
   am__include=include
@@ -1329,15 +1418,12 @@ rm -f confinc confmf
 
 # Fake the existence of programs that GNU maintainers use.  -*- Autoconf -*-
 
-# Copyright (C) 1997, 1999, 2000, 2001, 2003, 2004, 2005, 2008
-# Free Software Foundation, Inc.
+# Copyright (C) 1997-2013 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# serial 6
-
 # AM_MISSING_PROG(NAME, PROGRAM)
 # ------------------------------
 AC_DEFUN([AM_MISSING_PROG],
@@ -1345,11 +1431,10 @@ AC_DEFUN([AM_MISSING_PROG],
 $1=${$1-"${am_missing_run}$2"}
 AC_SUBST($1)])
 
-
 # AM_MISSING_HAS_RUN
 # ------------------
-# Define MISSING if not defined so far and test if it supports --run.
-# If it does, set am_missing_run to use it, otherwise, to nothing.
+# Define MISSING if not defined so far and test if it is modern enough.
+# If it is, set am_missing_run to use it, otherwise, to nothing.
 AC_DEFUN([AM_MISSING_HAS_RUN],
 [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
 AC_REQUIRE_AUX_FILE([missing])dnl
@@ -1362,54 +1447,22 @@ if test x"${MISSING+set}" != xset; then
   esac
 fi
 # Use eval to expand $SHELL
-if eval "$MISSING --run true"; then
-  am_missing_run="$MISSING --run "
+if eval "$MISSING --is-lightweight"; then
+  am_missing_run="$MISSING "
 else
   am_missing_run=
-  AC_MSG_WARN([`missing' script is too old or missing])
+  AC_MSG_WARN(['missing' script is too old or missing])
 fi
 ])
 
-# Copyright (C) 2003, 2004, 2005, 2006, 2011 Free Software Foundation,
-# Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# serial 1
-
-# AM_PROG_MKDIR_P
-# ---------------
-# Check for `mkdir -p'.
-AC_DEFUN([AM_PROG_MKDIR_P],
-[AC_PREREQ([2.60])dnl
-AC_REQUIRE([AC_PROG_MKDIR_P])dnl
-dnl Automake 1.8 to 1.9.6 used to define mkdir_p.  We now use MKDIR_P,
-dnl while keeping a definition of mkdir_p for backward compatibility.
-dnl @MKDIR_P@ is magic: AC_OUTPUT adjusts its value for each Makefile.
-dnl However we cannot define mkdir_p as $(MKDIR_P) for the sake of
-dnl Makefile.ins that do not define MKDIR_P, so we do our own
-dnl adjustment using top_builddir (which is defined more often than
-dnl MKDIR_P).
-AC_SUBST([mkdir_p], ["$MKDIR_P"])dnl
-case $mkdir_p in
-  [[\\/$]]* | ?:[[\\/]]*) ;;
-  */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;;
-esac
-])
-
 # Helper functions for option handling.                     -*- Autoconf -*-
 
-# Copyright (C) 2001, 2002, 2003, 2005, 2008, 2010 Free Software
-# Foundation, Inc.
+# Copyright (C) 2001-2013 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# serial 5
-
 # _AM_MANGLE_OPTION(NAME)
 # -----------------------
 AC_DEFUN([_AM_MANGLE_OPTION],
@@ -1419,7 +1472,7 @@ AC_DEFUN([_AM_MANGLE_OPTION],
 # --------------------
 # Set option NAME.  Presently that only means defining a flag for this option.
 AC_DEFUN([_AM_SET_OPTION],
-[m4_define(_AM_MANGLE_OPTION([$1]), 1)])
+[m4_define(_AM_MANGLE_OPTION([$1]), [1])])
 
 # _AM_SET_OPTIONS(OPTIONS)
 # ------------------------
@@ -1433,13 +1486,58 @@ AC_DEFUN([_AM_SET_OPTIONS],
 AC_DEFUN([_AM_IF_OPTION],
 [m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])])
 
-# Copyright (C) 2001, 2003, 2005, 2011 Free Software Foundation, Inc.
+# Copyright (C) 1999-2013 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# serial 1
+# _AM_PROG_CC_C_O
+# ---------------
+# Like AC_PROG_CC_C_O, but changed for automake.  We rewrite AC_PROG_CC
+# to automatically call this.
+AC_DEFUN([_AM_PROG_CC_C_O],
+[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
+AC_REQUIRE_AUX_FILE([compile])dnl
+AC_LANG_PUSH([C])dnl
+AC_CACHE_CHECK(
+  [whether $CC understands -c and -o together],
+  [am_cv_prog_cc_c_o],
+  [AC_LANG_CONFTEST([AC_LANG_PROGRAM([])])
+  # Make sure it works both with $CC and with simple cc.
+  # Following AC_PROG_CC_C_O, we do the test twice because some
+  # compilers refuse to overwrite an existing .o file with -o,
+  # though they will create one.
+  am_cv_prog_cc_c_o=yes
+  for am_i in 1 2; do
+    if AM_RUN_LOG([$CC -c conftest.$ac_ext -o conftest2.$ac_objext]) \
+         && test -f conftest2.$ac_objext; then
+      : OK
+    else
+      am_cv_prog_cc_c_o=no
+      break
+    fi
+  done
+  rm -f core conftest*
+  unset am_i])
+if test "$am_cv_prog_cc_c_o" != yes; then
+   # Losing compiler, so override with the script.
+   # FIXME: It is wrong to rewrite CC.
+   # But if we don't then we get into trouble of one sort or another.
+   # A longer-term fix would be to have automake use am__CC in this case,
+   # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)"
+   CC="$am_aux_dir/compile $CC"
+fi
+AC_LANG_POP([C])])
+
+# For backward compatibility.
+AC_DEFUN_ONCE([AM_PROG_CC_C_O], [AC_REQUIRE([AC_PROG_CC])])
+
+# Copyright (C) 2001-2013 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
 
 # AM_RUN_LOG(COMMAND)
 # -------------------
@@ -1454,22 +1552,16 @@ AC_DEFUN([AM_RUN_LOG],
 
 # Check to make sure that the build environment is sane.    -*- Autoconf -*-
 
-# Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005, 2008
-# Free Software Foundation, Inc.
+# Copyright (C) 1996-2013 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# serial 5
-
 # AM_SANITY_CHECK
 # ---------------
 AC_DEFUN([AM_SANITY_CHECK],
 [AC_MSG_CHECKING([whether build environment is sane])
-# Just in case
-sleep 1
-echo timestamp > conftest.file
 # Reject unsafe characters in $srcdir or the absolute working directory
 # name.  Accept space and tab only in the latter.
 am_lf='
@@ -1480,32 +1572,40 @@ case `pwd` in
 esac
 case $srcdir in
   *[[\\\"\#\$\&\'\`$am_lf\ \	]]*)
-    AC_MSG_ERROR([unsafe srcdir value: `$srcdir']);;
+    AC_MSG_ERROR([unsafe srcdir value: '$srcdir']);;
 esac
 
-# Do `set' in a subshell so we don't clobber the current shell's
+# Do 'set' in a subshell so we don't clobber the current shell's
 # arguments.  Must try -L first in case configure is actually a
 # symlink; some systems play weird games with the mod time of symlinks
 # (eg FreeBSD returns the mod time of the symlink's containing
 # directory).
 if (
-   set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null`
-   if test "$[*]" = "X"; then
-      # -L didn't work.
-      set X `ls -t "$srcdir/configure" conftest.file`
-   fi
-   rm -f conftest.file
-   if test "$[*]" != "X $srcdir/configure conftest.file" \
-      && test "$[*]" != "X conftest.file $srcdir/configure"; then
-
-      # If neither matched, then we have a broken ls.  This can happen
-      # if, for instance, CONFIG_SHELL is bash and it inherits a
-      # broken ls alias from the environment.  This has actually
-      # happened.  Such a system could not be considered "sane".
-      AC_MSG_ERROR([ls -t appears to fail.  Make sure there is not a broken
-alias in your environment])
-   fi
-
+   am_has_slept=no
+   for am_try in 1 2; do
+     echo "timestamp, slept: $am_has_slept" > conftest.file
+     set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null`
+     if test "$[*]" = "X"; then
+	# -L didn't work.
+	set X `ls -t "$srcdir/configure" conftest.file`
+     fi
+     if test "$[*]" != "X $srcdir/configure conftest.file" \
+	&& test "$[*]" != "X conftest.file $srcdir/configure"; then
+
+	# If neither matched, then we have a broken ls.  This can happen
+	# if, for instance, CONFIG_SHELL is bash and it inherits a
+	# broken ls alias from the environment.  This has actually
+	# happened.  Such a system could not be considered "sane".
+	AC_MSG_ERROR([ls -t appears to fail.  Make sure there is not a broken
+  alias in your environment])
+     fi
+     if test "$[2]" = conftest.file || test $am_try -eq 2; then
+       break
+     fi
+     # Just in case.
+     sleep 1
+     am_has_slept=yes
+   done
    test "$[2]" = conftest.file
    )
 then
@@ -1515,31 +1615,50 @@ else
    AC_MSG_ERROR([newly created file is older than distributed files!
 Check your system clock])
 fi
-AC_MSG_RESULT(yes)])
+AC_MSG_RESULT([yes])
+# If we didn't sleep, we still need to ensure time stamps of config.status and
+# generated files are strictly newer.
+am_sleep_pid=
+if grep 'slept: no' conftest.file >/dev/null 2>&1; then
+  ( sleep 1 ) &
+  am_sleep_pid=$!
+fi
+AC_CONFIG_COMMANDS_PRE(
+  [AC_MSG_CHECKING([that generated files are newer than configure])
+   if test -n "$am_sleep_pid"; then
+     # Hide warnings about reused PIDs.
+     wait $am_sleep_pid 2>/dev/null
+   fi
+   AC_MSG_RESULT([done])])
+rm -f conftest.file
+])
 
-# Copyright (C) 2009, 2011  Free Software Foundation, Inc.
+# Copyright (C) 2009-2013 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# serial 2
-
 # AM_SILENT_RULES([DEFAULT])
 # --------------------------
 # Enable less verbose build rules; with the default set to DEFAULT
-# (`yes' being less verbose, `no' or empty being verbose).
+# ("yes" being less verbose, "no" or empty being verbose).
 AC_DEFUN([AM_SILENT_RULES],
-[AC_ARG_ENABLE([silent-rules],
-[  --enable-silent-rules          less verbose build output (undo: `make V=1')
-  --disable-silent-rules         verbose build output (undo: `make V=0')])
-case $enable_silent_rules in
-yes) AM_DEFAULT_VERBOSITY=0;;
-no)  AM_DEFAULT_VERBOSITY=1;;
-*)   AM_DEFAULT_VERBOSITY=m4_if([$1], [yes], [0], [1]);;
+[AC_ARG_ENABLE([silent-rules], [dnl
+AS_HELP_STRING(
+  [--enable-silent-rules],
+  [less verbose build output (undo: "make V=1")])
+AS_HELP_STRING(
+  [--disable-silent-rules],
+  [verbose build output (undo: "make V=0")])dnl
+])
+case $enable_silent_rules in @%:@ (((
+  yes) AM_DEFAULT_VERBOSITY=0;;
+   no) AM_DEFAULT_VERBOSITY=1;;
+    *) AM_DEFAULT_VERBOSITY=m4_if([$1], [yes], [0], [1]);;
 esac
 dnl
-dnl A few `make' implementations (e.g., NonStop OS and NextStep)
+dnl A few 'make' implementations (e.g., NonStop OS and NextStep)
 dnl do not support nested variable expansions.
 dnl See automake bug#9928 and bug#10237.
 am_make=${MAKE-make}
@@ -1557,7 +1676,7 @@ else
   am_cv_make_support_nested_variables=no
 fi])
 if test $am_cv_make_support_nested_variables = yes; then
-  dnl Using `$V' instead of `$(V)' breaks IRIX make.
+  dnl Using '$V' instead of '$(V)' breaks IRIX make.
   AM_V='$(V)'
   AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)'
 else
@@ -1574,44 +1693,40 @@ AC_SUBST([AM_BACKSLASH])dnl
 _AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl
 ])
 
-# Copyright (C) 2001, 2003, 2005, 2011 Free Software Foundation, Inc.
+# Copyright (C) 2001-2013 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# serial 1
-
 # AM_PROG_INSTALL_STRIP
 # ---------------------
-# One issue with vendor `install' (even GNU) is that you can't
+# One issue with vendor 'install' (even GNU) is that you can't
 # specify the program used to strip binaries.  This is especially
 # annoying in cross-compiling environments, where the build's strip
 # is unlikely to handle the host's binaries.
 # Fortunately install-sh will honor a STRIPPROG variable, so we
-# always use install-sh in `make install-strip', and initialize
+# always use install-sh in "make install-strip", and initialize
 # STRIPPROG with the value of the STRIP variable (set by the user).
 AC_DEFUN([AM_PROG_INSTALL_STRIP],
 [AC_REQUIRE([AM_PROG_INSTALL_SH])dnl
-# Installed binaries are usually stripped using `strip' when the user
-# run `make install-strip'.  However `strip' might not be the right
+# Installed binaries are usually stripped using 'strip' when the user
+# run "make install-strip".  However 'strip' might not be the right
 # tool to use in cross-compilation environments, therefore Automake
-# will honor the `STRIP' environment variable to overrule this program.
-dnl Don't test for $cross_compiling = yes, because it might be `maybe'.
+# will honor the 'STRIP' environment variable to overrule this program.
+dnl Don't test for $cross_compiling = yes, because it might be 'maybe'.
 if test "$cross_compiling" != no; then
   AC_CHECK_TOOL([STRIP], [strip], :)
 fi
 INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
 AC_SUBST([INSTALL_STRIP_PROGRAM])])
 
-# Copyright (C) 2006, 2008, 2010 Free Software Foundation, Inc.
+# Copyright (C) 2006-2013 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# serial 3
-
 # _AM_SUBST_NOTMAKE(VARIABLE)
 # ---------------------------
 # Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in.
@@ -1625,18 +1740,16 @@ AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)])
 
 # Check how to create a tarball.                            -*- Autoconf -*-
 
-# Copyright (C) 2004, 2005, 2012 Free Software Foundation, Inc.
+# Copyright (C) 2004-2013 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# serial 2
-
 # _AM_PROG_TAR(FORMAT)
 # --------------------
 # Check how to create a tarball in format FORMAT.
-# FORMAT should be one of `v7', `ustar', or `pax'.
+# FORMAT should be one of 'v7', 'ustar', or 'pax'.
 #
 # Substitute a variable $(am__tar) that is a command
 # writing to stdout a FORMAT-tarball containing the directory
@@ -1646,76 +1759,114 @@ AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)])
 # Substitute a variable $(am__untar) that extract such
 # a tarball read from stdin.
 #     $(am__untar) < result.tar
+#
 AC_DEFUN([_AM_PROG_TAR],
 [# Always define AMTAR for backward compatibility.  Yes, it's still used
 # in the wild :-(  We should find a proper way to deprecate it ...
 AC_SUBST([AMTAR], ['$${TAR-tar}'])
-m4_if([$1], [v7],
-     [am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'],
-     [m4_case([$1], [ustar],, [pax],,
-              [m4_fatal([Unknown tar format])])
-AC_MSG_CHECKING([how to create a $1 tar archive])
-# Loop over all known methods to create a tar archive until one works.
+
+# We'll loop over all known methods to create a tar archive until one works.
 _am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none'
-_am_tools=${am_cv_prog_tar_$1-$_am_tools}
-# Do not fold the above two line into one, because Tru64 sh and
-# Solaris sh will not grok spaces in the rhs of `-'.
-for _am_tool in $_am_tools
-do
-  case $_am_tool in
-  gnutar)
-    for _am_tar in tar gnutar gtar;
-    do
-      AM_RUN_LOG([$_am_tar --version]) && break
-    done
-    am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"'
-    am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"'
-    am__untar="$_am_tar -xf -"
-    ;;
-  plaintar)
-    # Must skip GNU tar: if it does not support --format= it doesn't create
-    # ustar tarball either.
-    (tar --version) >/dev/null 2>&1 && continue
-    am__tar='tar chf - "$$tardir"'
-    am__tar_='tar chf - "$tardir"'
-    am__untar='tar xf -'
-    ;;
-  pax)
-    am__tar='pax -L -x $1 -w "$$tardir"'
-    am__tar_='pax -L -x $1 -w "$tardir"'
-    am__untar='pax -r'
-    ;;
-  cpio)
-    am__tar='find "$$tardir" -print | cpio -o -H $1 -L'
-    am__tar_='find "$tardir" -print | cpio -o -H $1 -L'
-    am__untar='cpio -i -H $1 -d'
-    ;;
-  none)
-    am__tar=false
-    am__tar_=false
-    am__untar=false
-    ;;
-  esac
 
-  # If the value was cached, stop now.  We just wanted to have am__tar
-  # and am__untar set.
-  test -n "${am_cv_prog_tar_$1}" && break
+m4_if([$1], [v7],
+  [am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'],
+
+  [m4_case([$1],
+    [ustar],
+     [# The POSIX 1988 'ustar' format is defined with fixed-size fields.
+      # There is notably a 21 bits limit for the UID and the GID.  In fact,
+      # the 'pax' utility can hang on bigger UID/GID (see automake bug#8343
+      # and bug#13588).
+      am_max_uid=2097151 # 2^21 - 1
+      am_max_gid=$am_max_uid
+      # The $UID and $GID variables are not portable, so we need to resort
+      # to the POSIX-mandated id(1) utility.  Errors in the 'id' calls
+      # below are definitely unexpected, so allow the users to see them
+      # (that is, avoid stderr redirection).
+      am_uid=`id -u || echo unknown`
+      am_gid=`id -g || echo unknown`
+      AC_MSG_CHECKING([whether UID '$am_uid' is supported by ustar format])
+      if test $am_uid -le $am_max_uid; then
+         AC_MSG_RESULT([yes])
+      else
+         AC_MSG_RESULT([no])
+         _am_tools=none
+      fi
+      AC_MSG_CHECKING([whether GID '$am_gid' is supported by ustar format])
+      if test $am_gid -le $am_max_gid; then
+         AC_MSG_RESULT([yes])
+      else
+        AC_MSG_RESULT([no])
+        _am_tools=none
+      fi],
+
+  [pax],
+    [],
+
+  [m4_fatal([Unknown tar format])])
+
+  AC_MSG_CHECKING([how to create a $1 tar archive])
+
+  # Go ahead even if we have the value already cached.  We do so because we
+  # need to set the values for the 'am__tar' and 'am__untar' variables.
+  _am_tools=${am_cv_prog_tar_$1-$_am_tools}
+
+  for _am_tool in $_am_tools; do
+    case $_am_tool in
+    gnutar)
+      for _am_tar in tar gnutar gtar; do
+        AM_RUN_LOG([$_am_tar --version]) && break
+      done
+      am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"'
+      am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"'
+      am__untar="$_am_tar -xf -"
+      ;;
+    plaintar)
+      # Must skip GNU tar: if it does not support --format= it doesn't create
+      # ustar tarball either.
+      (tar --version) >/dev/null 2>&1 && continue
+      am__tar='tar chf - "$$tardir"'
+      am__tar_='tar chf - "$tardir"'
+      am__untar='tar xf -'
+      ;;
+    pax)
+      am__tar='pax -L -x $1 -w "$$tardir"'
+      am__tar_='pax -L -x $1 -w "$tardir"'
+      am__untar='pax -r'
+      ;;
+    cpio)
+      am__tar='find "$$tardir" -print | cpio -o -H $1 -L'
+      am__tar_='find "$tardir" -print | cpio -o -H $1 -L'
+      am__untar='cpio -i -H $1 -d'
+      ;;
+    none)
+      am__tar=false
+      am__tar_=false
+      am__untar=false
+      ;;
+    esac
 
-  # tar/untar a dummy directory, and stop if the command works
-  rm -rf conftest.dir
-  mkdir conftest.dir
-  echo GrepMe > conftest.dir/file
-  AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar])
+    # If the value was cached, stop now.  We just wanted to have am__tar
+    # and am__untar set.
+    test -n "${am_cv_prog_tar_$1}" && break
+
+    # tar/untar a dummy directory, and stop if the command works.
+    rm -rf conftest.dir
+    mkdir conftest.dir
+    echo GrepMe > conftest.dir/file
+    AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar])
+    rm -rf conftest.dir
+    if test -s conftest.tar; then
+      AM_RUN_LOG([$am__untar <conftest.tar])
+      AM_RUN_LOG([cat conftest.dir/file])
+      grep GrepMe conftest.dir/file >/dev/null 2>&1 && break
+    fi
+  done
   rm -rf conftest.dir
-  if test -s conftest.tar; then
-    AM_RUN_LOG([$am__untar <conftest.tar])
-    grep GrepMe conftest.dir/file >/dev/null 2>&1 && break
-  fi
-done
-rm -rf conftest.dir
 
-AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool])
-AC_MSG_RESULT([$am_cv_prog_tar_$1])])
+  AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool])
+  AC_MSG_RESULT([$am_cv_prog_tar_$1])])
+
 AC_SUBST([am__tar])
 AC_SUBST([am__untar])
 ]) # _AM_PROG_TAR
diff --git a/config/compile b/config/compile
new file mode 100755
index 0000000..531136b
--- /dev/null
+++ b/config/compile
@@ -0,0 +1,347 @@
+#! /bin/sh
+# Wrapper for compilers which do not understand '-c -o'.
+
+scriptversion=2012-10-14.11; # UTC
+
+# Copyright (C) 1999-2013 Free Software Foundation, Inc.
+# Written by Tom Tromey <tromey at cygnus.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, 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, see <http://www.gnu.org/licenses/>.
+
+# 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.
+
+# This file is maintained in Automake, please report
+# bugs to <bug-automake at gnu.org> or send patches to
+# <automake-patches at gnu.org>.
+
+nl='
+'
+
+# We need space, tab and new line, in precisely that order.  Quoting is
+# there to prevent tools from complaining about whitespace usage.
+IFS=" ""	$nl"
+
+file_conv=
+
+# func_file_conv build_file lazy
+# Convert a $build file to $host form and store it in $file
+# Currently only supports Windows hosts. If the determined conversion
+# type is listed in (the comma separated) LAZY, no conversion will
+# take place.
+func_file_conv ()
+{
+  file=$1
+  case $file in
+    / | /[!/]*) # absolute file, and not a UNC file
+      if test -z "$file_conv"; then
+	# lazily determine how to convert abs files
+	case `uname -s` in
+	  MINGW*)
+	    file_conv=mingw
+	    ;;
+	  CYGWIN*)
+	    file_conv=cygwin
+	    ;;
+	  *)
+	    file_conv=wine
+	    ;;
+	esac
+      fi
+      case $file_conv/,$2, in
+	*,$file_conv,*)
+	  ;;
+	mingw/*)
+	  file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'`
+	  ;;
+	cygwin/*)
+	  file=`cygpath -m "$file" || echo "$file"`
+	  ;;
+	wine/*)
+	  file=`winepath -w "$file" || echo "$file"`
+	  ;;
+      esac
+      ;;
+  esac
+}
+
+# func_cl_dashL linkdir
+# Make cl look for libraries in LINKDIR
+func_cl_dashL ()
+{
+  func_file_conv "$1"
+  if test -z "$lib_path"; then
+    lib_path=$file
+  else
+    lib_path="$lib_path;$file"
+  fi
+  linker_opts="$linker_opts -LIBPATH:$file"
+}
+
+# func_cl_dashl library
+# Do a library search-path lookup for cl
+func_cl_dashl ()
+{
+  lib=$1
+  found=no
+  save_IFS=$IFS
+  IFS=';'
+  for dir in $lib_path $LIB
+  do
+    IFS=$save_IFS
+    if $shared && test -f "$dir/$lib.dll.lib"; then
+      found=yes
+      lib=$dir/$lib.dll.lib
+      break
+    fi
+    if test -f "$dir/$lib.lib"; then
+      found=yes
+      lib=$dir/$lib.lib
+      break
+    fi
+    if test -f "$dir/lib$lib.a"; then
+      found=yes
+      lib=$dir/lib$lib.a
+      break
+    fi
+  done
+  IFS=$save_IFS
+
+  if test "$found" != yes; then
+    lib=$lib.lib
+  fi
+}
+
+# func_cl_wrapper cl arg...
+# Adjust compile command to suit cl
+func_cl_wrapper ()
+{
+  # Assume a capable shell
+  lib_path=
+  shared=:
+  linker_opts=
+  for arg
+  do
+    if test -n "$eat"; then
+      eat=
+    else
+      case $1 in
+	-o)
+	  # configure might choose to run compile as 'compile cc -o foo foo.c'.
+	  eat=1
+	  case $2 in
+	    *.o | *.[oO][bB][jJ])
+	      func_file_conv "$2"
+	      set x "$@" -Fo"$file"
+	      shift
+	      ;;
+	    *)
+	      func_file_conv "$2"
+	      set x "$@" -Fe"$file"
+	      shift
+	      ;;
+	  esac
+	  ;;
+	-I)
+	  eat=1
+	  func_file_conv "$2" mingw
+	  set x "$@" -I"$file"
+	  shift
+	  ;;
+	-I*)
+	  func_file_conv "${1#-I}" mingw
+	  set x "$@" -I"$file"
+	  shift
+	  ;;
+	-l)
+	  eat=1
+	  func_cl_dashl "$2"
+	  set x "$@" "$lib"
+	  shift
+	  ;;
+	-l*)
+	  func_cl_dashl "${1#-l}"
+	  set x "$@" "$lib"
+	  shift
+	  ;;
+	-L)
+	  eat=1
+	  func_cl_dashL "$2"
+	  ;;
+	-L*)
+	  func_cl_dashL "${1#-L}"
+	  ;;
+	-static)
+	  shared=false
+	  ;;
+	-Wl,*)
+	  arg=${1#-Wl,}
+	  save_ifs="$IFS"; IFS=','
+	  for flag in $arg; do
+	    IFS="$save_ifs"
+	    linker_opts="$linker_opts $flag"
+	  done
+	  IFS="$save_ifs"
+	  ;;
+	-Xlinker)
+	  eat=1
+	  linker_opts="$linker_opts $2"
+	  ;;
+	-*)
+	  set x "$@" "$1"
+	  shift
+	  ;;
+	*.cc | *.CC | *.cxx | *.CXX | *.[cC]++)
+	  func_file_conv "$1"
+	  set x "$@" -Tp"$file"
+	  shift
+	  ;;
+	*.c | *.cpp | *.CPP | *.lib | *.LIB | *.Lib | *.OBJ | *.obj | *.[oO])
+	  func_file_conv "$1" mingw
+	  set x "$@" "$file"
+	  shift
+	  ;;
+	*)
+	  set x "$@" "$1"
+	  shift
+	  ;;
+      esac
+    fi
+    shift
+  done
+  if test -n "$linker_opts"; then
+    linker_opts="-link$linker_opts"
+  fi
+  exec "$@" $linker_opts
+  exit 1
+}
+
+eat=
+
+case $1 in
+  '')
+     echo "$0: No command.  Try '$0 --help' for more information." 1>&2
+     exit 1;
+     ;;
+  -h | --h*)
+    cat <<\EOF
+Usage: compile [--help] [--version] PROGRAM [ARGS]
+
+Wrapper for compilers which do not understand '-c -o'.
+Remove '-o dest.o' from ARGS, run PROGRAM with the remaining
+arguments, and rename the output as expected.
+
+If you are trying to build a whole package this is not the
+right script to run: please start by reading the file 'INSTALL'.
+
+Report bugs to <bug-automake at gnu.org>.
+EOF
+    exit $?
+    ;;
+  -v | --v*)
+    echo "compile $scriptversion"
+    exit $?
+    ;;
+  cl | *[/\\]cl | cl.exe | *[/\\]cl.exe )
+    func_cl_wrapper "$@"      # Doesn't return...
+    ;;
+esac
+
+ofile=
+cfile=
+
+for arg
+do
+  if test -n "$eat"; then
+    eat=
+  else
+    case $1 in
+      -o)
+	# configure might choose to run compile as 'compile cc -o foo foo.c'.
+	# So we strip '-o arg' only if arg is an object.
+	eat=1
+	case $2 in
+	  *.o | *.obj)
+	    ofile=$2
+	    ;;
+	  *)
+	    set x "$@" -o "$2"
+	    shift
+	    ;;
+	esac
+	;;
+      *.c)
+	cfile=$1
+	set x "$@" "$1"
+	shift
+	;;
+      *)
+	set x "$@" "$1"
+	shift
+	;;
+    esac
+  fi
+  shift
+done
+
+if test -z "$ofile" || test -z "$cfile"; then
+  # If no '-o' option was seen then we might have been invoked from a
+  # pattern rule where we don't need one.  That is ok -- this is a
+  # normal compilation that the losing compiler can handle.  If no
+  # '.c' file was seen then we are probably linking.  That is also
+  # ok.
+  exec "$@"
+fi
+
+# Name of file we expect compiler to create.
+cofile=`echo "$cfile" | sed 's|^.*[\\/]||; s|^[a-zA-Z]:||; s/\.c$/.o/'`
+
+# Create the lock directory.
+# Note: use '[/\\:.-]' here to ensure that we don't use the same name
+# that we are using for the .o file.  Also, base the name on the expected
+# object file name, since that is what matters with a parallel build.
+lockdir=`echo "$cofile" | sed -e 's|[/\\:.-]|_|g'`.d
+while true; do
+  if mkdir "$lockdir" >/dev/null 2>&1; then
+    break
+  fi
+  sleep 1
+done
+# FIXME: race condition here if user kills between mkdir and trap.
+trap "rmdir '$lockdir'; exit 1" 1 2 15
+
+# Run the compile.
+"$@"
+ret=$?
+
+if test -f "$cofile"; then
+  test "$cofile" = "$ofile" || mv "$cofile" "$ofile"
+elif test -f "${cofile}bj"; then
+  test "${cofile}bj" = "$ofile" || mv "${cofile}bj" "$ofile"
+fi
+
+rmdir "$lockdir"
+exit $ret
+
+# Local Variables:
+# mode: shell-script
+# sh-indentation: 2
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "scriptversion="
+# time-stamp-format: "%:y-%02m-%02d.%02H"
+# time-stamp-time-zone: "UTC"
+# time-stamp-end: "; # UTC"
+# End:
diff --git a/config/config.guess b/config/config.guess
index d622a44..1f5c50c 100755
--- a/config/config.guess
+++ b/config/config.guess
@@ -1,14 +1,12 @@
 #! /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, 2006, 2007, 2008, 2009, 2010,
-#   2011, 2012 Free Software Foundation, Inc.
+#   Copyright 1992-2014 Free Software Foundation, Inc.
 
-timestamp='2012-02-10'
+timestamp='2014-03-23'
 
 # 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
-# the Free Software Foundation; either version 2 of the License, or
+# the Free Software Foundation; either version 3 of the License, or
 # (at your option) any later version.
 #
 # This program is distributed in the hope that it will be useful, but
@@ -22,19 +20,17 @@ timestamp='2012-02-10'
 # 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.
-
-
-# Originally written by Per Bothner.  Please send patches (context
-# diff format) to <config-patches at gnu.org> and include a ChangeLog
-# entry.
+# the same distribution terms that you use for the rest of that
+# program.  This Exception is an additional permission under section 7
+# of the GNU General Public License, version 3 ("GPLv3").
 #
-# This script attempts to guess a canonical system name similar to
-# config.sub.  If it succeeds, it prints the system name on stdout, and
-# exits with 0.  Otherwise, it exits with 1.
+# Originally written by Per Bothner.
 #
 # You can get the latest version of this script from:
 # http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD
+#
+# Please send patches with a ChangeLog entry to config-patches at gnu.org.
+
 
 me=`echo "$0" | sed -e 's,.*/,,'`
 
@@ -54,9 +50,7 @@ version="\
 GNU config.guess ($timestamp)
 
 Originally written by Per Bothner.
-Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
-2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012
-Free Software Foundation, Inc.
+Copyright 1992-2014 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."
@@ -138,6 +132,27 @@ UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
 UNAME_SYSTEM=`(uname -s) 2>/dev/null`  || UNAME_SYSTEM=unknown
 UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
 
+case "${UNAME_SYSTEM}" in
+Linux|GNU|GNU/*)
+	# If the system lacks a compiler, then just pick glibc.
+	# We could probably try harder.
+	LIBC=gnu
+
+	eval $set_cc_for_build
+	cat <<-EOF > $dummy.c
+	#include <features.h>
+	#if defined(__UCLIBC__)
+	LIBC=uclibc
+	#elif defined(__dietlibc__)
+	LIBC=dietlibc
+	#else
+	LIBC=gnu
+	#endif
+	EOF
+	eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC' | sed 's, ,,g'`
+	;;
+esac
+
 # Note: order is significant - the case branches are not exclusive.
 
 case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
@@ -200,6 +215,10 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
 	# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
 	echo "${machine}-${os}${release}"
 	exit ;;
+    *:Bitrig:*:*)
+	UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'`
+	echo ${UNAME_MACHINE_ARCH}-unknown-bitrig${UNAME_RELEASE}
+	exit ;;
     *:OpenBSD:*:*)
 	UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'`
 	echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE}
@@ -302,7 +321,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
     arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
 	echo arm-acorn-riscix${UNAME_RELEASE}
 	exit ;;
-    arm:riscos:*:*|arm:RISCOS:*:*)
+    arm*:riscos:*:*|arm*:RISCOS:*:*)
 	echo arm-unknown-riscos
 	exit ;;
     SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*)
@@ -801,10 +820,13 @@ EOF
     i*:CYGWIN*:*)
 	echo ${UNAME_MACHINE}-pc-cygwin
 	exit ;;
+    *:MINGW64*:*)
+	echo ${UNAME_MACHINE}-pc-mingw64
+	exit ;;
     *:MINGW*:*)
 	echo ${UNAME_MACHINE}-pc-mingw32
 	exit ;;
-    i*:MSYS*:*)
+    *:MSYS*:*)
 	echo ${UNAME_MACHINE}-pc-msys
 	exit ;;
     i*:windows32*:*)
@@ -852,21 +874,21 @@ EOF
 	exit ;;
     *:GNU:*:*)
 	# the GNU system
-	echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
+	echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-${LIBC}`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
 	exit ;;
     *:GNU/*:*:*)
 	# other systems with GNU libc and userland
-	echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu
+	echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-${LIBC}
 	exit ;;
     i*86:Minix:*:*)
 	echo ${UNAME_MACHINE}-pc-minix
 	exit ;;
     aarch64:Linux:*:*)
-	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
 	exit ;;
     aarch64_be:Linux:*:*)
 	UNAME_MACHINE=aarch64_be
-	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
 	exit ;;
     alpha:Linux:*:*)
 	case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
@@ -879,59 +901,54 @@ EOF
 	  EV68*) UNAME_MACHINE=alphaev68 ;;
 	esac
 	objdump --private-headers /bin/sh | grep -q ld.so.1
-	if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
-	echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
+	if test "$?" = 0 ; then LIBC="gnulibc1" ; fi
+	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+	exit ;;
+    arc:Linux:*:* | arceb:Linux:*:*)
+	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
 	exit ;;
     arm*:Linux:*:*)
 	eval $set_cc_for_build
 	if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \
 	    | grep -q __ARM_EABI__
 	then
-	    echo ${UNAME_MACHINE}-unknown-linux-gnu
+	    echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
 	else
 	    if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \
 		| grep -q __ARM_PCS_VFP
 	    then
-		echo ${UNAME_MACHINE}-unknown-linux-gnueabi
+		echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabi
 	    else
-		echo ${UNAME_MACHINE}-unknown-linux-gnueabihf
+		echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabihf
 	    fi
 	fi
 	exit ;;
     avr32*:Linux:*:*)
-	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
 	exit ;;
     cris:Linux:*:*)
-	echo ${UNAME_MACHINE}-axis-linux-gnu
+	echo ${UNAME_MACHINE}-axis-linux-${LIBC}
 	exit ;;
     crisv32:Linux:*:*)
-	echo ${UNAME_MACHINE}-axis-linux-gnu
+	echo ${UNAME_MACHINE}-axis-linux-${LIBC}
 	exit ;;
     frv:Linux:*:*)
-	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
 	exit ;;
     hexagon:Linux:*:*)
-	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
 	exit ;;
     i*86:Linux:*:*)
-	LIBC=gnu
-	eval $set_cc_for_build
-	sed 's/^	//' << EOF >$dummy.c
-	#ifdef __dietlibc__
-	LIBC=dietlibc
-	#endif
-EOF
-	eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'`
-	echo "${UNAME_MACHINE}-pc-linux-${LIBC}"
+	echo ${UNAME_MACHINE}-pc-linux-${LIBC}
 	exit ;;
     ia64:Linux:*:*)
-	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
 	exit ;;
     m32r*:Linux:*:*)
-	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
 	exit ;;
     m68*:Linux:*:*)
-	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
 	exit ;;
     mips:Linux:*:* | mips64:Linux:*:*)
 	eval $set_cc_for_build
@@ -950,54 +967,63 @@ EOF
 	#endif
 EOF
 	eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'`
-	test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
+	test x"${CPU}" != x && { echo "${CPU}-unknown-linux-${LIBC}"; exit; }
 	;;
-    or32:Linux:*:*)
-	echo ${UNAME_MACHINE}-unknown-linux-gnu
+    openrisc*:Linux:*:*)
+	echo or1k-unknown-linux-${LIBC}
+	exit ;;
+    or32:Linux:*:* | or1k*:Linux:*:*)
+	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
 	exit ;;
     padre:Linux:*:*)
-	echo sparc-unknown-linux-gnu
+	echo sparc-unknown-linux-${LIBC}
 	exit ;;
     parisc64:Linux:*:* | hppa64:Linux:*:*)
-	echo hppa64-unknown-linux-gnu
+	echo hppa64-unknown-linux-${LIBC}
 	exit ;;
     parisc:Linux:*:* | hppa:Linux:*:*)
 	# Look for CPU level
 	case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
-	  PA7*) echo hppa1.1-unknown-linux-gnu ;;
-	  PA8*) echo hppa2.0-unknown-linux-gnu ;;
-	  *)    echo hppa-unknown-linux-gnu ;;
+	  PA7*) echo hppa1.1-unknown-linux-${LIBC} ;;
+	  PA8*) echo hppa2.0-unknown-linux-${LIBC} ;;
+	  *)    echo hppa-unknown-linux-${LIBC} ;;
 	esac
 	exit ;;
     ppc64:Linux:*:*)
-	echo powerpc64-unknown-linux-gnu
+	echo powerpc64-unknown-linux-${LIBC}
 	exit ;;
     ppc:Linux:*:*)
-	echo powerpc-unknown-linux-gnu
+	echo powerpc-unknown-linux-${LIBC}
+	exit ;;
+    ppc64le:Linux:*:*)
+	echo powerpc64le-unknown-linux-${LIBC}
+	exit ;;
+    ppcle:Linux:*:*)
+	echo powerpcle-unknown-linux-${LIBC}
 	exit ;;
     s390:Linux:*:* | s390x:Linux:*:*)
-	echo ${UNAME_MACHINE}-ibm-linux
+	echo ${UNAME_MACHINE}-ibm-linux-${LIBC}
 	exit ;;
     sh64*:Linux:*:*)
-	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
 	exit ;;
     sh*:Linux:*:*)
-	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
 	exit ;;
     sparc:Linux:*:* | sparc64:Linux:*:*)
-	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
 	exit ;;
     tile*:Linux:*:*)
-	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
 	exit ;;
     vax:Linux:*:*)
-	echo ${UNAME_MACHINE}-dec-linux-gnu
+	echo ${UNAME_MACHINE}-dec-linux-${LIBC}
 	exit ;;
     x86_64:Linux:*:*)
-	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
 	exit ;;
     xtensa*:Linux:*:*)
-	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
 	exit ;;
     i*86:DYNIX/ptx:4*:*)
 	# ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
@@ -1201,6 +1227,9 @@ EOF
     BePC:Haiku:*:*)	# Haiku running on Intel PC compatible.
 	echo i586-pc-haiku
 	exit ;;
+    x86_64:Haiku:*:*)
+	echo x86_64-unknown-haiku
+	exit ;;
     SX-4:SUPER-UX:*:*)
 	echo sx4-nec-superux${UNAME_RELEASE}
 	exit ;;
@@ -1227,19 +1256,31 @@ EOF
 	exit ;;
     *:Darwin:*:*)
 	UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown
-	case $UNAME_PROCESSOR in
-	    i386)
-		eval $set_cc_for_build
-		if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
-		  if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \
-		      (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
-		      grep IS_64BIT_ARCH >/dev/null
-		  then
-		      UNAME_PROCESSOR="x86_64"
-		  fi
-		fi ;;
-	    unknown) UNAME_PROCESSOR=powerpc ;;
-	esac
+	eval $set_cc_for_build
+	if test "$UNAME_PROCESSOR" = unknown ; then
+	    UNAME_PROCESSOR=powerpc
+	fi
+	if test `echo "$UNAME_RELEASE" | sed -e 's/\..*//'` -le 10 ; then
+	    if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
+		if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \
+		    (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
+		    grep IS_64BIT_ARCH >/dev/null
+		then
+		    case $UNAME_PROCESSOR in
+			i386) UNAME_PROCESSOR=x86_64 ;;
+			powerpc) UNAME_PROCESSOR=powerpc64 ;;
+		    esac
+		fi
+	    fi
+	elif test "$UNAME_PROCESSOR" = i386 ; then
+	    # Avoid executing cc on OS X 10.9, as it ships with a stub
+	    # that puts up a graphical alert prompting to install
+	    # developer tools.  Any system running Mac OS X 10.7 or
+	    # later (Darwin 11 and later) is required to have a 64-bit
+	    # processor. This is not true of the ARM version of Darwin
+	    # that Apple uses in portable devices.
+	    UNAME_PROCESSOR=x86_64
+	fi
 	echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE}
 	exit ;;
     *:procnto*:*:* | *:QNX:[0123456789]*:*)
@@ -1256,7 +1297,7 @@ EOF
     NEO-?:NONSTOP_KERNEL:*:*)
 	echo neo-tandem-nsk${UNAME_RELEASE}
 	exit ;;
-    NSE-?:NONSTOP_KERNEL:*:*)
+    NSE-*:NONSTOP_KERNEL:*:*)
 	echo nse-tandem-nsk${UNAME_RELEASE}
 	exit ;;
     NSR-?:NONSTOP_KERNEL:*:*)
@@ -1330,157 +1371,6 @@ EOF
 	exit ;;
 esac
 
-#echo '(No uname command or uname output not recognized.)' 1>&2
-#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2
-
-eval $set_cc_for_build
-cat >$dummy.c <<EOF
-#ifdef _SEQUENT_
-# include <sys/types.h>
-# include <sys/utsname.h>
-#endif
-main ()
-{
-#if defined (sony)
-#if defined (MIPSEB)
-  /* BFD wants "bsd" instead of "newsos".  Perhaps BFD should be changed,
-     I don't know....  */
-  printf ("mips-sony-bsd\n"); exit (0);
-#else
-#include <sys/param.h>
-  printf ("m68k-sony-newsos%s\n",
-#ifdef NEWSOS4
-	"4"
-#else
-	""
-#endif
-	); exit (0);
-#endif
-#endif
-
-#if defined (__arm) && defined (__acorn) && defined (__unix)
-  printf ("arm-acorn-riscix\n"); exit (0);
-#endif
-
-#if defined (hp300) && !defined (hpux)
-  printf ("m68k-hp-bsd\n"); exit (0);
-#endif
-
-#if defined (NeXT)
-#if !defined (__ARCHITECTURE__)
-#define __ARCHITECTURE__ "m68k"
-#endif
-  int version;
-  version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`;
-  if (version < 4)
-    printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version);
-  else
-    printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version);
-  exit (0);
-#endif
-
-#if defined (MULTIMAX) || defined (n16)
-#if defined (UMAXV)
-  printf ("ns32k-encore-sysv\n"); exit (0);
-#else
-#if defined (CMU)
-  printf ("ns32k-encore-mach\n"); exit (0);
-#else
-  printf ("ns32k-encore-bsd\n"); exit (0);
-#endif
-#endif
-#endif
-
-#if defined (__386BSD__)
-  printf ("i386-pc-bsd\n"); exit (0);
-#endif
-
-#if defined (sequent)
-#if defined (i386)
-  printf ("i386-sequent-dynix\n"); exit (0);
-#endif
-#if defined (ns32000)
-  printf ("ns32k-sequent-dynix\n"); exit (0);
-#endif
-#endif
-
-#if defined (_SEQUENT_)
-    struct utsname un;
-
-    uname(&un);
-
-    if (strncmp(un.version, "V2", 2) == 0) {
-	printf ("i386-sequent-ptx2\n"); exit (0);
-    }
-    if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */
-	printf ("i386-sequent-ptx1\n"); exit (0);
-    }
-    printf ("i386-sequent-ptx\n"); exit (0);
-
-#endif
-
-#if defined (vax)
-# if !defined (ultrix)
-#  include <sys/param.h>
-#  if defined (BSD)
-#   if BSD == 43
-      printf ("vax-dec-bsd4.3\n"); exit (0);
-#   else
-#    if BSD == 199006
-      printf ("vax-dec-bsd4.3reno\n"); exit (0);
-#    else
-      printf ("vax-dec-bsd\n"); exit (0);
-#    endif
-#   endif
-#  else
-    printf ("vax-dec-bsd\n"); exit (0);
-#  endif
-# else
-    printf ("vax-dec-ultrix\n"); exit (0);
-# endif
-#endif
-
-#if defined (alliant) && defined (i860)
-  printf ("i860-alliant-bsd\n"); exit (0);
-#endif
-
-  exit (1);
-}
-EOF
-
-$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` &&
-	{ echo "$SYSTEM_NAME"; exit; }
-
-# Apollos put the system type in the environment.
-
-test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; }
-
-# Convex versions that predate uname can use getsysinfo(1)
-
-if [ -x /usr/convex/getsysinfo ]
-then
-    case `getsysinfo -f cpu_type` in
-    c1*)
-	echo c1-convex-bsd
-	exit ;;
-    c2*)
-	if getsysinfo -f scalar_acc
-	then echo c32-convex-bsd
-	else echo c2-convex-bsd
-	fi
-	exit ;;
-    c34*)
-	echo c34-convex-bsd
-	exit ;;
-    c38*)
-	echo c38-convex-bsd
-	exit ;;
-    c4*)
-	echo c4-convex-bsd
-	exit ;;
-    esac
-fi
-
 cat >&2 <<EOF
 $0: unable to guess system type
 
diff --git a/config/config.sub b/config/config.sub
index 6205f84..bba4efb 100755
--- a/config/config.sub
+++ b/config/config.sub
@@ -1,24 +1,18 @@
 #! /bin/sh
 # Configuration validation subroutine script.
-#   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-#   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010,
-#   2011, 2012 Free Software Foundation, Inc.
+#   Copyright 1992-2014 Free Software Foundation, Inc.
 
-timestamp='2012-04-18'
+timestamp='2014-09-11'
 
-# This file is (in principle) common to ALL GNU software.
-# The presence of a machine in this file suggests that SOME GNU software
-# can handle that machine.  It does not imply ALL GNU software can.
-#
-# 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
-# the Free Software Foundation; either version 2 of the License, or
+# 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
+# the Free Software Foundation; either version 3 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.
+# 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, see <http://www.gnu.org/licenses/>.
@@ -26,11 +20,12 @@ timestamp='2012-04-18'
 # 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.
+# the same distribution terms that you use for the rest of that
+# program.  This Exception is an additional permission under section 7
+# of the GNU General Public License, version 3 ("GPLv3").
 
 
-# Please send patches to <config-patches at gnu.org>.  Submit a context
-# diff and a properly formatted GNU ChangeLog entry.
+# Please send patches with a ChangeLog entry to config-patches at gnu.org.
 #
 # Configuration subroutine to validate and canonicalize a configuration type.
 # Supply the specified configuration type as an argument.
@@ -73,9 +68,7 @@ Report bugs and patches to <config-patches at gnu.org>."
 version="\
 GNU config.sub ($timestamp)
 
-Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
-2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012
-Free Software Foundation, Inc.
+Copyright 1992-2014 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."
@@ -123,7 +116,7 @@ esac
 maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
 case $maybe_os in
   nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \
-  linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \
+  linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \
   knetbsd*-gnu* | netbsd*-gnu* | \
   kopensolaris*-gnu* | \
   storm-chaos* | os2-emx* | rtmk-nova*)
@@ -156,7 +149,7 @@ case $os in
 	-convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\
 	-c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
 	-harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \
-	-apple | -axis | -knuth | -cray | -microblaze)
+	-apple | -axis | -knuth | -cray | -microblaze*)
 		os=
 		basic_machine=$1
 		;;
@@ -259,10 +252,12 @@ 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 | avr32 \
-        | be32 | be64 \
+	| arc | arceb \
+	| arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv7[arm] \
+	| avr | avr32 \
+	| be32 | be64 \
 	| bfin \
-	| c4x | clipper \
+	| c4x | c8051 | clipper \
 	| d10v | d30v | dlx | dsp16xx \
 	| epiphany \
 	| fido | fr30 | frv \
@@ -270,10 +265,11 @@ case $basic_machine in
 	| hexagon \
 	| i370 | i860 | i960 | ia64 \
 	| ip2k | iq2000 \
+	| k1om \
 	| le32 | le64 \
 	| lm32 \
 	| m32c | m32r | m32rle | m68000 | m68k | m88k \
-	| maxq | mb | microblaze | mcore | mep | metag \
+	| maxq | mb | microblaze | microblazeel | mcore | mep | metag \
 	| mips | mipsbe | mipseb | mipsel | mipsle \
 	| mips16 \
 	| mips64 | mips64el \
@@ -287,23 +283,26 @@ case $basic_machine in
 	| mips64vr5900 | mips64vr5900el \
 	| mipsisa32 | mipsisa32el \
 	| mipsisa32r2 | mipsisa32r2el \
+	| mipsisa32r6 | mipsisa32r6el \
 	| mipsisa64 | mipsisa64el \
 	| mipsisa64r2 | mipsisa64r2el \
+	| mipsisa64r6 | mipsisa64r6el \
 	| mipsisa64sb1 | mipsisa64sb1el \
 	| mipsisa64sr71k | mipsisa64sr71kel \
+	| mipsr5900 | mipsr5900el \
 	| mipstx39 | mipstx39el \
 	| mn10200 | mn10300 \
 	| moxie \
 	| mt \
 	| msp430 \
 	| nds32 | nds32le | nds32be \
-	| nios | nios2 \
+	| nios | nios2 | nios2eb | nios2el \
 	| ns16k | ns32k \
-	| open8 \
-	| or32 \
+	| open8 | or1k | or1knd | or32 \
 	| pdp10 | pdp11 | pj | pjl \
 	| powerpc | powerpc64 | powerpc64le | powerpcle \
 	| pyramid \
+	| riscv32 | riscv64 \
 	| rl78 | rx \
 	| score \
 	| sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \
@@ -328,7 +327,7 @@ case $basic_machine in
 	c6x)
 		basic_machine=tic6x-unknown
 		;;
-	m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | picochip)
+	m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | nvptx | picochip)
 		basic_machine=$basic_machine-unknown
 		os=-none
 		;;
@@ -370,13 +369,13 @@ case $basic_machine in
 	| aarch64-* | aarch64_be-* \
 	| alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \
 	| alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \
-	| alphapca5[67]-* | alpha64pca5[67]-* | arc-* \
+	| alphapca5[67]-* | alpha64pca5[67]-* | arc-* | arceb-* \
 	| arm-*  | armbe-* | armle-* | armeb-* | armv*-* \
 	| avr-* | avr32-* \
 	| be32-* | be64-* \
 	| bfin-* | bs2000-* \
 	| c[123]* | c30-* | [cjt]90-* | c4x-* \
-	| clipper-* | craynv-* | cydra-* \
+	| c8051-* | clipper-* | craynv-* | cydra-* \
 	| d10v-* | d30v-* | dlx-* \
 	| elxsi-* \
 	| f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \
@@ -385,11 +384,13 @@ case $basic_machine in
 	| hexagon-* \
 	| i*86-* | i860-* | i960-* | ia64-* \
 	| ip2k-* | iq2000-* \
+	| k1om-* \
 	| le32-* | le64-* \
 	| lm32-* \
 	| m32c-* | m32r-* | m32rle-* \
 	| m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
-	| m88110-* | m88k-* | maxq-* | mcore-* | metag-* | microblaze-* \
+	| m88110-* | m88k-* | maxq-* | mcore-* | metag-* \
+	| microblaze-* | microblazeel-* \
 	| mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
 	| mips16-* \
 	| mips64-* | mips64el-* \
@@ -403,18 +404,22 @@ case $basic_machine in
 	| mips64vr5900-* | mips64vr5900el-* \
 	| mipsisa32-* | mipsisa32el-* \
 	| mipsisa32r2-* | mipsisa32r2el-* \
+	| mipsisa32r6-* | mipsisa32r6el-* \
 	| mipsisa64-* | mipsisa64el-* \
 	| mipsisa64r2-* | mipsisa64r2el-* \
+	| mipsisa64r6-* | mipsisa64r6el-* \
 	| mipsisa64sb1-* | mipsisa64sb1el-* \
 	| mipsisa64sr71k-* | mipsisa64sr71kel-* \
+	| mipsr5900-* | mipsr5900el-* \
 	| mipstx39-* | mipstx39el-* \
 	| mmix-* \
 	| mt-* \
 	| msp430-* \
 	| nds32-* | nds32le-* | nds32be-* \
-	| nios-* | nios2-* \
+	| nios-* | nios2-* | nios2eb-* | nios2el-* \
 	| none-* | np1-* | ns16k-* | ns32k-* \
 	| open8-* \
+	| or1k*-* \
 	| orion-* \
 	| pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
 	| powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \
@@ -788,11 +793,15 @@ case $basic_machine in
 		basic_machine=ns32k-utek
 		os=-sysv
 		;;
-	microblaze)
+	microblaze*)
 		basic_machine=microblaze-xilinx
 		;;
+	mingw64)
+		basic_machine=x86_64-pc
+		os=-mingw64
+		;;
 	mingw32)
-		basic_machine=i386-pc
+		basic_machine=i686-pc
 		os=-mingw32
 		;;
 	mingw32ce)
@@ -820,6 +829,10 @@ case $basic_machine in
 		basic_machine=powerpc-unknown
 		os=-morphos
 		;;
+	moxiebox)
+		basic_machine=moxie-unknown
+		os=-moxiebox
+		;;
 	msdos)
 		basic_machine=i386-pc
 		os=-msdos
@@ -828,7 +841,7 @@ case $basic_machine in
 		basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'`
 		;;
 	msys)
-		basic_machine=i386-pc
+		basic_machine=i686-pc
 		os=-msys
 		;;
 	mvs)
@@ -1019,7 +1032,11 @@ case $basic_machine in
 		basic_machine=i586-unknown
 		os=-pw32
 		;;
-	rdos)
+	rdos | rdos64)
+		basic_machine=x86_64-pc
+		os=-rdos
+		;;
+	rdos32)
 		basic_machine=i386-pc
 		os=-rdos
 		;;
@@ -1346,29 +1363,29 @@ case $os in
 	-gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
 	      | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\
 	      | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \
-	      | -sym* | -kopensolaris* \
+	      | -sym* | -kopensolaris* | -plan9* \
 	      | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
 	      | -aos* | -aros* \
 	      | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
 	      | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
 	      | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \
-	      | -openbsd* | -solidbsd* \
+	      | -bitrig* | -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* | -cegcc* \
 	      | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
-	      | -mingw32* | -linux-gnu* | -linux-android* \
-	      | -linux-newlib* | -linux-uclibc* \
-	      | -uxpv* | -beos* | -mpeix* | -udk* \
+	      | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \
+	      | -linux-newlib* | -linux-musl* | -linux-uclibc* \
+	      | -uxpv* | -beos* | -mpeix* | -udk* | -moxiebox* \
 	      | -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* | -rdos* | -toppers* | -drops* | -es*)
+	      | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es* | -tirtos*)
 	# Remember, each alternative MUST END IN *, to match a version number.
 		;;
 	-qnx*)
@@ -1492,9 +1509,6 @@ case $os in
 	-aros*)
 		os=-aros
 		;;
-	-kaos*)
-		os=-kaos
-		;;
 	-zvmoe)
 		os=-zvmoe
 		;;
@@ -1543,6 +1557,9 @@ case $basic_machine in
 	c4x-* | tic4x-*)
 		os=-coff
 		;;
+	c8051-*)
+		os=-elf
+		;;
 	hexagon-*)
 		os=-elf
 		;;
diff --git a/config/depcomp b/config/depcomp
index 25a39e6..4ebd5b3 100755
--- a/config/depcomp
+++ b/config/depcomp
@@ -1,10 +1,9 @@
 #! /bin/sh
 # depcomp - compile a program generating dependencies as side-effects
 
-scriptversion=2012-03-27.16; # UTC
+scriptversion=2013-05-30.07; # UTC
 
-# Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006, 2007, 2009, 2010,
-# 2011, 2012 Free Software Foundation, Inc.
+# Copyright (C) 1999-2013 Free Software Foundation, Inc.
 
 # 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
@@ -28,9 +27,9 @@ scriptversion=2012-03-27.16; # UTC
 
 case $1 in
   '')
-     echo "$0: No command.  Try '$0 --help' for more information." 1>&2
-     exit 1;
-     ;;
+    echo "$0: No command.  Try '$0 --help' for more information." 1>&2
+    exit 1;
+    ;;
   -h | --h*)
     cat <<\EOF
 Usage: depcomp [--help] [--version] PROGRAM [ARGS]
@@ -57,11 +56,65 @@ EOF
     ;;
 esac
 
+# Get the directory component of the given path, and save it in the
+# global variables '$dir'.  Note that this directory component will
+# be either empty or ending with a '/' character.  This is deliberate.
+set_dir_from ()
+{
+  case $1 in
+    */*) dir=`echo "$1" | sed -e 's|/[^/]*$|/|'`;;
+      *) dir=;;
+  esac
+}
+
+# Get the suffix-stripped basename of the given path, and save it the
+# global variable '$base'.
+set_base_from ()
+{
+  base=`echo "$1" | sed -e 's|^.*/||' -e 's/\.[^.]*$//'`
+}
+
+# If no dependency file was actually created by the compiler invocation,
+# we still have to create a dummy depfile, to avoid errors with the
+# Makefile "include basename.Plo" scheme.
+make_dummy_depfile ()
+{
+  echo "#dummy" > "$depfile"
+}
+
+# Factor out some common post-processing of the generated depfile.
+# Requires the auxiliary global variable '$tmpdepfile' to be set.
+aix_post_process_depfile ()
+{
+  # If the compiler actually managed to produce a dependency file,
+  # post-process it.
+  if test -f "$tmpdepfile"; then
+    # Each line is of the form 'foo.o: dependency.h'.
+    # Do two passes, one to just change these to
+    #   $object: dependency.h
+    # and one to simply output
+    #   dependency.h:
+    # which is needed to avoid the deleted-header problem.
+    { sed -e "s,^.*\.[$lower]*:,$object:," < "$tmpdepfile"
+      sed -e "s,^.*\.[$lower]*:[$tab ]*,," -e 's,$,:,' < "$tmpdepfile"
+    } > "$depfile"
+    rm -f "$tmpdepfile"
+  else
+    make_dummy_depfile
+  fi
+}
+
 # A tabulation character.
 tab='	'
 # A newline character.
 nl='
 '
+# Character ranges might be problematic outside the C locale.
+# These definitions help.
+upper=ABCDEFGHIJKLMNOPQRSTUVWXYZ
+lower=abcdefghijklmnopqrstuvwxyz
+digits=0123456789
+alpha=${upper}${lower}
 
 if test -z "$depmode" || test -z "$source" || test -z "$object"; then
   echo "depcomp: Variables source, object and depmode must be set" 1>&2
@@ -75,6 +128,9 @@ tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`}
 
 rm -f "$tmpdepfile"
 
+# Avoid interferences from the environment.
+gccflag= dashmflag=
+
 # Some modes work just like other modes, but use different flags.  We
 # parameterize here, but still list the modes in the big case below,
 # to make depend.m4 easier to write.  Note that we *cannot* use a case
@@ -86,32 +142,32 @@ if test "$depmode" = hp; then
 fi
 
 if test "$depmode" = dashXmstdout; then
-   # This is just like dashmstdout with a different argument.
-   dashmflag=-xM
-   depmode=dashmstdout
+  # This is just like dashmstdout with a different argument.
+  dashmflag=-xM
+  depmode=dashmstdout
 fi
 
 cygpath_u="cygpath -u -f -"
 if test "$depmode" = msvcmsys; then
-   # This is just like msvisualcpp but w/o cygpath translation.
-   # Just convert the backslash-escaped backslashes to single forward
-   # slashes to satisfy depend.m4
-   cygpath_u='sed s,\\\\,/,g'
-   depmode=msvisualcpp
+  # This is just like msvisualcpp but w/o cygpath translation.
+  # Just convert the backslash-escaped backslashes to single forward
+  # slashes to satisfy depend.m4
+  cygpath_u='sed s,\\\\,/,g'
+  depmode=msvisualcpp
 fi
 
 if test "$depmode" = msvc7msys; then
-   # This is just like msvc7 but w/o cygpath translation.
-   # Just convert the backslash-escaped backslashes to single forward
-   # slashes to satisfy depend.m4
-   cygpath_u='sed s,\\\\,/,g'
-   depmode=msvc7
+  # This is just like msvc7 but w/o cygpath translation.
+  # Just convert the backslash-escaped backslashes to single forward
+  # slashes to satisfy depend.m4
+  cygpath_u='sed s,\\\\,/,g'
+  depmode=msvc7
 fi
 
 if test "$depmode" = xlc; then
-   # IBM C/C++ Compilers xlc/xlC can output gcc-like dependency informations.
-   gccflag=-qmakedep=gcc,-MF
-   depmode=gcc
+  # IBM C/C++ Compilers xlc/xlC can output gcc-like dependency information.
+  gccflag=-qmakedep=gcc,-MF
+  depmode=gcc
 fi
 
 case "$depmode" in
@@ -134,8 +190,7 @@ gcc3)
   done
   "$@"
   stat=$?
-  if test $stat -eq 0; then :
-  else
+  if test $stat -ne 0; then
     rm -f "$tmpdepfile"
     exit $stat
   fi
@@ -143,13 +198,17 @@ gcc3)
   ;;
 
 gcc)
+## Note that this doesn't just cater to obsosete pre-3.x GCC compilers.
+## but also to in-use compilers like IMB xlc/xlC and the HP C compiler.
+## (see the conditional assignment to $gccflag above).
 ## There are various ways to get dependency output from gcc.  Here's
 ## why we pick this rather obscure method:
 ## - Don't want to use -MD because we'd like the dependencies to end
 ##   up in a subdir.  Having to rename by hand is ugly.
 ##   (We might end up doing this anyway to support other compilers.)
 ## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like
-##   -MM, not -M (despite what the docs say).
+##   -MM, not -M (despite what the docs say).  Also, it might not be
+##   supported by the other compilers which use the 'gcc' depmode.
 ## - Using -M directly means running the compiler twice (even worse
 ##   than renaming).
   if test -z "$gccflag"; then
@@ -157,15 +216,14 @@ gcc)
   fi
   "$@" -Wp,"$gccflag$tmpdepfile"
   stat=$?
-  if test $stat -eq 0; then :
-  else
+  if test $stat -ne 0; then
     rm -f "$tmpdepfile"
     exit $stat
   fi
   rm -f "$depfile"
   echo "$object : \\" > "$depfile"
-  alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
-## The second -e expression handles DOS-style file names with drive letters.
+  # The second -e expression handles DOS-style file names with drive
+  # letters.
   sed -e 's/^[^:]*: / /' \
       -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile"
 ## This next piece of magic avoids the "deleted header file" problem.
@@ -174,15 +232,15 @@ gcc)
 ## typically no way to rebuild the header).  We avoid this by adding
 ## dummy dependencies for each header file.  Too bad gcc doesn't do
 ## this for us directly.
-  tr ' ' "$nl" < "$tmpdepfile" |
 ## Some versions of gcc put a space before the ':'.  On the theory
 ## that the space means something, we add a space to the output as
 ## well.  hp depmode also adds that space, but also prefixes the VPATH
 ## to the object.  Take care to not repeat it in the output.
 ## Some versions of the HPUX 10.20 sed can't process this invocation
 ## correctly.  Breaking it into two sed invocations is a workaround.
-    sed -e 's/^\\$//' -e '/^$/d' -e "s|.*$object$||" -e '/:$/d' \
-      | sed -e 's/$/ :/' >> "$depfile"
+  tr ' ' "$nl" < "$tmpdepfile" \
+    | sed -e 's/^\\$//' -e '/^$/d' -e "s|.*$object$||" -e '/:$/d' \
+    | sed -e 's/$/ :/' >> "$depfile"
   rm -f "$tmpdepfile"
   ;;
 
@@ -200,8 +258,7 @@ sgi)
     "$@" -MDupdate "$tmpdepfile"
   fi
   stat=$?
-  if test $stat -eq 0; then :
-  else
+  if test $stat -ne 0; then
     rm -f "$tmpdepfile"
     exit $stat
   fi
@@ -209,7 +266,6 @@ sgi)
 
   if test -f "$tmpdepfile"; then  # yes, the sourcefile depend on other files
     echo "$object : \\" > "$depfile"
-
     # Clip off the initial element (the dependent).  Don't try to be
     # clever and replace this with sed code, as IRIX sed won't handle
     # lines with more than a fixed number of characters (4096 in
@@ -217,19 +273,15 @@ sgi)
     # the IRIX cc adds comments like '#:fec' to the end of the
     # dependency line.
     tr ' ' "$nl" < "$tmpdepfile" \
-    | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \
-    tr "$nl" ' ' >> "$depfile"
+      | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' \
+      | tr "$nl" ' ' >> "$depfile"
     echo >> "$depfile"
-
     # The second pass generates a dummy entry for each header file.
     tr ' ' "$nl" < "$tmpdepfile" \
-   | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \
-   >> "$depfile"
+      | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \
+      >> "$depfile"
   else
-    # The sourcefile does not contain any dependencies, so just
-    # store a dummy comment line, to avoid errors with the Makefile
-    # "include basename.Plo" scheme.
-    echo "#dummy" > "$depfile"
+    make_dummy_depfile
   fi
   rm -f "$tmpdepfile"
   ;;
@@ -247,9 +299,8 @@ aix)
   # current directory.  Also, the AIX compiler puts '$object:' at the
   # start of each line; $object doesn't have directory information.
   # Version 6 uses the directory in both cases.
-  dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
-  test "x$dir" = "x$object" && dir=
-  base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
+  set_dir_from "$object"
+  set_base_from "$object"
   if test "$libtool" = yes; then
     tmpdepfile1=$dir$base.u
     tmpdepfile2=$base.u
@@ -262,9 +313,7 @@ aix)
     "$@" -M
   fi
   stat=$?
-
-  if test $stat -eq 0; then :
-  else
+  if test $stat -ne 0; then
     rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
     exit $stat
   fi
@@ -273,65 +322,113 @@ aix)
   do
     test -f "$tmpdepfile" && break
   done
-  if test -f "$tmpdepfile"; then
-    # Each line is of the form 'foo.o: dependent.h'.
-    # Do two passes, one to just change these to
-    # '$object: dependent.h' and one to simply 'dependent.h:'.
-    sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile"
-    sed -e 's,^.*\.[a-z]*:['"$tab"' ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile"
-  else
-    # The sourcefile does not contain any dependencies, so just
-    # store a dummy comment line, to avoid errors with the Makefile
-    # "include basename.Plo" scheme.
-    echo "#dummy" > "$depfile"
+  aix_post_process_depfile
+  ;;
+
+tcc)
+  # tcc (Tiny C Compiler) understand '-MD -MF file' since version 0.9.26
+  # FIXME: That version still under development at the moment of writing.
+  #        Make that this statement remains true also for stable, released
+  #        versions.
+  # It will wrap lines (doesn't matter whether long or short) with a
+  # trailing '\', as in:
+  #
+  #   foo.o : \
+  #    foo.c \
+  #    foo.h \
+  #
+  # It will put a trailing '\' even on the last line, and will use leading
+  # spaces rather than leading tabs (at least since its commit 0394caf7
+  # "Emit spaces for -MD").
+  "$@" -MD -MF "$tmpdepfile"
+  stat=$?
+  if test $stat -ne 0; then
+    rm -f "$tmpdepfile"
+    exit $stat
   fi
+  rm -f "$depfile"
+  # Each non-empty line is of the form 'foo.o : \' or ' dep.h \'.
+  # We have to change lines of the first kind to '$object: \'.
+  sed -e "s|.*:|$object :|" < "$tmpdepfile" > "$depfile"
+  # And for each line of the second kind, we have to emit a 'dep.h:'
+  # dummy dependency, to avoid the deleted-header problem.
+  sed -n -e 's|^  *\(.*\) *\\$|\1:|p' < "$tmpdepfile" >> "$depfile"
   rm -f "$tmpdepfile"
   ;;
 
-icc)
-  # Intel's C compiler anf tcc (Tiny C Compiler) understand '-MD -MF file'.
-  # However on
-  #    $CC -MD -MF foo.d -c -o sub/foo.o sub/foo.c
-  # ICC 7.0 will fill foo.d with something like
-  #    foo.o: sub/foo.c
-  #    foo.o: sub/foo.h
-  # which is wrong.  We want
-  #    sub/foo.o: sub/foo.c
-  #    sub/foo.o: sub/foo.h
-  #    sub/foo.c:
-  #    sub/foo.h:
-  # ICC 7.1 will output
+## The order of this option in the case statement is important, since the
+## shell code in configure will try each of these formats in the order
+## listed in this file.  A plain '-MD' option would be understood by many
+## compilers, so we must ensure this comes after the gcc and icc options.
+pgcc)
+  # Portland's C compiler understands '-MD'.
+  # Will always output deps to 'file.d' where file is the root name of the
+  # source file under compilation, even if file resides in a subdirectory.
+  # The object file name does not affect the name of the '.d' file.
+  # pgcc 10.2 will output
   #    foo.o: sub/foo.c sub/foo.h
-  # and will wrap long lines using '\':
+  # and will wrap long lines using '\' :
   #    foo.o: sub/foo.c ... \
   #     sub/foo.h ... \
   #     ...
-  # tcc 0.9.26 (FIXME still under development at the moment of writing)
-  # will emit a similar output, but also prepend the continuation lines
-  # with horizontal tabulation characters.
-  "$@" -MD -MF "$tmpdepfile"
-  stat=$?
-  if test $stat -eq 0; then :
-  else
+  set_dir_from "$object"
+  # Use the source, not the object, to determine the base name, since
+  # that's sadly what pgcc will do too.
+  set_base_from "$source"
+  tmpdepfile=$base.d
+
+  # For projects that build the same source file twice into different object
+  # files, the pgcc approach of using the *source* file root name can cause
+  # problems in parallel builds.  Use a locking strategy to avoid stomping on
+  # the same $tmpdepfile.
+  lockdir=$base.d-lock
+  trap "
+    echo '$0: caught signal, cleaning up...' >&2
+    rmdir '$lockdir'
+    exit 1
+  " 1 2 13 15
+  numtries=100
+  i=$numtries
+  while test $i -gt 0; do
+    # mkdir is a portable test-and-set.
+    if mkdir "$lockdir" 2>/dev/null; then
+      # This process acquired the lock.
+      "$@" -MD
+      stat=$?
+      # Release the lock.
+      rmdir "$lockdir"
+      break
+    else
+      # If the lock is being held by a different process, wait
+      # until the winning process is done or we timeout.
+      while test -d "$lockdir" && test $i -gt 0; do
+        sleep 1
+        i=`expr $i - 1`
+      done
+    fi
+    i=`expr $i - 1`
+  done
+  trap - 1 2 13 15
+  if test $i -le 0; then
+    echo "$0: failed to acquire lock after $numtries attempts" >&2
+    echo "$0: check lockdir '$lockdir'" >&2
+    exit 1
+  fi
+
+  if test $stat -ne 0; then
     rm -f "$tmpdepfile"
     exit $stat
   fi
   rm -f "$depfile"
-  # Each line is of the form 'foo.o: dependent.h',
-  # or 'foo.o: dep1.h dep2.h \', or ' dep3.h dep4.h \'.
+  # Each line is of the form `foo.o: dependent.h',
+  # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'.
   # Do two passes, one to just change these to
-  # '$object: dependent.h' and one to simply 'dependent.h:'.
-  sed -e "s/^[ $tab][ $tab]*/  /" -e "s,^[^:]*:,$object :," \
-    < "$tmpdepfile" > "$depfile"
-  sed '
-    s/[ '"$tab"'][ '"$tab"']*/ /g
-    s/^ *//
-    s/ *\\*$//
-    s/^[^:]*: *//
-    /^$/d
-    /:$/d
-    s/$/ :/
-  ' < "$tmpdepfile" >> "$depfile"
+  # `$object: dependent.h' and one to simply `dependent.h:'.
+  sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile"
+  # Some versions of the HPUX 10.20 sed can't process this invocation
+  # correctly.  Breaking it into two sed invocations is a workaround.
+  sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" \
+    | sed -e 's/$/ :/' >> "$depfile"
   rm -f "$tmpdepfile"
   ;;
 
@@ -342,9 +439,8 @@ hp2)
   # 'foo.d', which lands next to the object file, wherever that
   # happens to be.
   # Much of this is similar to the tru64 case; see comments there.
-  dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
-  test "x$dir" = "x$object" && dir=
-  base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
+  set_dir_from  "$object"
+  set_base_from "$object"
   if test "$libtool" = yes; then
     tmpdepfile1=$dir$base.d
     tmpdepfile2=$dir.libs/$base.d
@@ -355,8 +451,7 @@ hp2)
     "$@" +Maked
   fi
   stat=$?
-  if test $stat -eq 0; then :
-  else
+  if test $stat -ne 0; then
      rm -f "$tmpdepfile1" "$tmpdepfile2"
      exit $stat
   fi
@@ -366,76 +461,61 @@ hp2)
     test -f "$tmpdepfile" && break
   done
   if test -f "$tmpdepfile"; then
-    sed -e "s,^.*\.[a-z]*:,$object:," "$tmpdepfile" > "$depfile"
+    sed -e "s,^.*\.[$lower]*:,$object:," "$tmpdepfile" > "$depfile"
     # Add 'dependent.h:' lines.
     sed -ne '2,${
-	       s/^ *//
-	       s/ \\*$//
-	       s/$/:/
-	       p
-	     }' "$tmpdepfile" >> "$depfile"
+               s/^ *//
+               s/ \\*$//
+               s/$/:/
+               p
+             }' "$tmpdepfile" >> "$depfile"
   else
-    echo "#dummy" > "$depfile"
+    make_dummy_depfile
   fi
   rm -f "$tmpdepfile" "$tmpdepfile2"
   ;;
 
 tru64)
-   # The Tru64 compiler uses -MD to generate dependencies as a side
-   # effect.  'cc -MD -o foo.o ...' puts the dependencies into 'foo.o.d'.
-   # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put
-   # dependencies in 'foo.d' instead, so we check for that too.
-   # Subdirectories are respected.
-   dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
-   test "x$dir" = "x$object" && dir=
-   base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
-
-   if test "$libtool" = yes; then
-      # With Tru64 cc, shared objects can also be used to make a
-      # static library.  This mechanism is used in libtool 1.4 series to
-      # handle both shared and static libraries in a single compilation.
-      # With libtool 1.4, dependencies were output in $dir.libs/$base.lo.d.
-      #
-      # With libtool 1.5 this exception was removed, and libtool now
-      # generates 2 separate objects for the 2 libraries.  These two
-      # compilations output dependencies in $dir.libs/$base.o.d and
-      # in $dir$base.o.d.  We have to check for both files, because
-      # one of the two compilations can be disabled.  We should prefer
-      # $dir$base.o.d over $dir.libs/$base.o.d because the latter is
-      # automatically cleaned when .libs/ is deleted, while ignoring
-      # the former would cause a distcleancheck panic.
-      tmpdepfile1=$dir.libs/$base.lo.d   # libtool 1.4
-      tmpdepfile2=$dir$base.o.d          # libtool 1.5
-      tmpdepfile3=$dir.libs/$base.o.d    # libtool 1.5
-      tmpdepfile4=$dir.libs/$base.d      # Compaq CCC V6.2-504
-      "$@" -Wc,-MD
-   else
-      tmpdepfile1=$dir$base.o.d
-      tmpdepfile2=$dir$base.d
-      tmpdepfile3=$dir$base.d
-      tmpdepfile4=$dir$base.d
-      "$@" -MD
-   fi
-
-   stat=$?
-   if test $stat -eq 0; then :
-   else
-      rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4"
-      exit $stat
-   fi
-
-   for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4"
-   do
-     test -f "$tmpdepfile" && break
-   done
-   if test -f "$tmpdepfile"; then
-      sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile"
-      sed -e 's,^.*\.[a-z]*:['"$tab"' ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile"
-   else
-      echo "#dummy" > "$depfile"
-   fi
-   rm -f "$tmpdepfile"
-   ;;
+  # The Tru64 compiler uses -MD to generate dependencies as a side
+  # effect.  'cc -MD -o foo.o ...' puts the dependencies into 'foo.o.d'.
+  # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put
+  # dependencies in 'foo.d' instead, so we check for that too.
+  # Subdirectories are respected.
+  set_dir_from  "$object"
+  set_base_from "$object"
+
+  if test "$libtool" = yes; then
+    # Libtool generates 2 separate objects for the 2 libraries.  These
+    # two compilations output dependencies in $dir.libs/$base.o.d and
+    # in $dir$base.o.d.  We have to check for both files, because
+    # one of the two compilations can be disabled.  We should prefer
+    # $dir$base.o.d over $dir.libs/$base.o.d because the latter is
+    # automatically cleaned when .libs/ is deleted, while ignoring
+    # the former would cause a distcleancheck panic.
+    tmpdepfile1=$dir$base.o.d          # libtool 1.5
+    tmpdepfile2=$dir.libs/$base.o.d    # Likewise.
+    tmpdepfile3=$dir.libs/$base.d      # Compaq CCC V6.2-504
+    "$@" -Wc,-MD
+  else
+    tmpdepfile1=$dir$base.d
+    tmpdepfile2=$dir$base.d
+    tmpdepfile3=$dir$base.d
+    "$@" -MD
+  fi
+
+  stat=$?
+  if test $stat -ne 0; then
+    rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
+    exit $stat
+  fi
+
+  for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
+  do
+    test -f "$tmpdepfile" && break
+  done
+  # Same post-processing that is required for AIX mode.
+  aix_post_process_depfile
+  ;;
 
 msvc7)
   if test "$libtool" = yes; then
@@ -446,8 +526,7 @@ msvc7)
   "$@" $showIncludes > "$tmpdepfile"
   stat=$?
   grep -v '^Note: including file: ' "$tmpdepfile"
-  if test "$stat" = 0; then :
-  else
+  if test $stat -ne 0; then
     rm -f "$tmpdepfile"
     exit $stat
   fi
@@ -473,6 +552,7 @@ $ {
   G
   p
 }' >> "$depfile"
+  echo >> "$depfile" # make sure the fragment doesn't end with a backslash
   rm -f "$tmpdepfile"
   ;;
 
@@ -524,13 +604,14 @@ dashmstdout)
   # in the target name.  This is to cope with DOS-style filenames:
   # a dependency such as 'c:/foo/bar' could be seen as target 'c' otherwise.
   "$@" $dashmflag |
-    sed 's:^['"$tab"' ]*[^:'"$tab"' ][^:][^:]*\:['"$tab"' ]*:'"$object"'\: :' > "$tmpdepfile"
+    sed "s|^[$tab ]*[^:$tab ][^:][^:]*:[$tab ]*|$object: |" > "$tmpdepfile"
   rm -f "$depfile"
   cat < "$tmpdepfile" > "$depfile"
-  tr ' ' "$nl" < "$tmpdepfile" | \
-## Some versions of the HPUX 10.20 sed can't process this invocation
-## correctly.  Breaking it into two sed invocations is a workaround.
-    sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
+  # Some versions of the HPUX 10.20 sed can't process this sed invocation
+  # correctly.  Breaking it into two sed invocations is a workaround.
+  tr ' ' "$nl" < "$tmpdepfile" \
+    | sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' \
+    | sed -e 's/$/ :/' >> "$depfile"
   rm -f "$tmpdepfile"
   ;;
 
@@ -583,10 +664,12 @@ makedepend)
   # makedepend may prepend the VPATH from the source file name to the object.
   # No need to regex-escape $object, excess matching of '.' is harmless.
   sed "s|^.*\($object *:\)|\1|" "$tmpdepfile" > "$depfile"
-  sed '1,2d' "$tmpdepfile" | tr ' ' "$nl" | \
-## Some versions of the HPUX 10.20 sed can't process this invocation
-## correctly.  Breaking it into two sed invocations is a workaround.
-    sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
+  # Some versions of the HPUX 10.20 sed can't process the last invocation
+  # correctly.  Breaking it into two sed invocations is a workaround.
+  sed '1,2d' "$tmpdepfile" \
+    | tr ' ' "$nl" \
+    | sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' \
+    | sed -e 's/$/ :/' >> "$depfile"
   rm -f "$tmpdepfile" "$tmpdepfile".bak
   ;;
 
@@ -622,10 +705,10 @@ cpp)
     esac
   done
 
-  "$@" -E |
-    sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \
-       -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' |
-    sed '$ s: \\$::' > "$tmpdepfile"
+  "$@" -E \
+    | sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \
+             -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \
+    | sed '$ s: \\$::' > "$tmpdepfile"
   rm -f "$depfile"
   echo "$object : \\" > "$depfile"
   cat < "$tmpdepfile" >> "$depfile"
@@ -657,15 +740,15 @@ msvisualcpp)
       shift
       ;;
     "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI")
-	set fnord "$@"
-	shift
-	shift
-	;;
+        set fnord "$@"
+        shift
+        shift
+        ;;
     *)
-	set fnord "$@" "$arg"
-	shift
-	shift
-	;;
+        set fnord "$@" "$arg"
+        shift
+        shift
+        ;;
     esac
   done
   "$@" -E 2>/dev/null |
diff --git a/config/install-sh b/config/install-sh
index a9244eb..377bb86 100755
--- a/config/install-sh
+++ b/config/install-sh
@@ -1,7 +1,7 @@
 #!/bin/sh
 # install - install a program, script, or datafile
 
-scriptversion=2011-01-19.21; # UTC
+scriptversion=2011-11-20.07; # UTC
 
 # This originates from X11R5 (mit/util/scripts/install.sh), which was
 # later released in X11R6 (xc/config/util/install.sh) with the
@@ -35,7 +35,7 @@ scriptversion=2011-01-19.21; # UTC
 # FSF changes to this file are in the public domain.
 #
 # Calling this script install-sh is preferred over install.sh, to prevent
-# `make' implicit rules from creating a file called install from it
+# 'make' implicit rules from creating a file called install from it
 # when there is no Makefile.
 #
 # This script is compatible with the BSD install script, but was written
@@ -156,7 +156,7 @@ while test $# -ne 0; do
     -s) stripcmd=$stripprog;;
 
     -t) dst_arg=$2
-	# Protect names problematic for `test' and other utilities.
+	# Protect names problematic for 'test' and other utilities.
 	case $dst_arg in
 	  -* | [=\(\)!]) dst_arg=./$dst_arg;;
 	esac
@@ -190,7 +190,7 @@ if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then
     fi
     shift # arg
     dst_arg=$arg
-    # Protect names problematic for `test' and other utilities.
+    # Protect names problematic for 'test' and other utilities.
     case $dst_arg in
       -* | [=\(\)!]) dst_arg=./$dst_arg;;
     esac
@@ -202,7 +202,7 @@ if test $# -eq 0; then
     echo "$0: no input file specified." >&2
     exit 1
   fi
-  # It's OK to call `install-sh -d' without argument.
+  # It's OK to call 'install-sh -d' without argument.
   # This can happen when creating conditional directories.
   exit 0
 fi
@@ -240,7 +240,7 @@ fi
 
 for src
 do
-  # Protect names problematic for `test' and other utilities.
+  # Protect names problematic for 'test' and other utilities.
   case $src in
     -* | [=\(\)!]) src=./$src;;
   esac
@@ -354,7 +354,7 @@ do
 	      if test -z "$dir_arg" || {
 		   # Check for POSIX incompatibilities with -m.
 		   # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or
-		   # other-writeable bit of parent directory when it shouldn't.
+		   # other-writable bit of parent directory when it shouldn't.
 		   # FreeBSD 6.1 mkdir -m -p sets mode of existing directory.
 		   ls_ld_tmpdir=`ls -ld "$tmpdir"`
 		   case $ls_ld_tmpdir in
diff --git a/config/ltmain.sh b/config/ltmain.sh
index 33f642a..bffda54 100644
--- a/config/ltmain.sh
+++ b/config/ltmain.sh
@@ -70,7 +70,7 @@
 #         compiler:		$LTCC
 #         compiler flags:		$LTCFLAGS
 #         linker:		$LD (gnu? $with_gnu_ld)
-#         $progname:	(GNU libtool) 2.4.2 Debian-2.4.2-1.1
+#         $progname:	(GNU libtool) 2.4.2 Debian-2.4.2-1.11
 #         automake:	$automake_version
 #         autoconf:	$autoconf_version
 #
@@ -80,7 +80,7 @@
 
 PROGRAM=libtool
 PACKAGE=libtool
-VERSION="2.4.2 Debian-2.4.2-1.1"
+VERSION="2.4.2 Debian-2.4.2-1.11"
 TIMESTAMP=""
 package_revision=1.3337
 
diff --git a/config/missing b/config/missing
index 86a8fc3..db98974 100755
--- a/config/missing
+++ b/config/missing
@@ -1,11 +1,10 @@
 #! /bin/sh
-# Common stub for a few missing GNU programs while installing.
+# Common wrapper for a few potentially missing GNU programs.
 
-scriptversion=2012-01-06.13; # UTC
+scriptversion=2013-10-28.13; # UTC
 
-# Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005, 2006,
-# 2008, 2009, 2010, 2011, 2012 Free Software Foundation, Inc.
-# Originally by Fran,cois Pinard <pinard at iro.umontreal.ca>, 1996.
+# Copyright (C) 1996-2013 Free Software Foundation, Inc.
+# Originally written by Fran,cois Pinard <pinard at iro.umontreal.ca>, 1996.
 
 # 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
@@ -26,68 +25,40 @@ scriptversion=2012-01-06.13; # UTC
 # the same distribution terms that you use for the rest of that program.
 
 if test $# -eq 0; then
-  echo 1>&2 "Try \`$0 --help' for more information"
+  echo 1>&2 "Try '$0 --help' for more information"
   exit 1
 fi
 
-run=:
-sed_output='s/.* --output[ =]\([^ ]*\).*/\1/p'
-sed_minuso='s/.* -o \([^ ]*\).*/\1/p'
-
-# In the cases where this matters, `missing' is being run in the
-# srcdir already.
-if test -f configure.ac; then
-  configure_ac=configure.ac
-else
-  configure_ac=configure.in
-fi
+case $1 in
 
-msg="missing on your system"
+  --is-lightweight)
+    # Used by our autoconf macros to check whether the available missing
+    # script is modern enough.
+    exit 0
+    ;;
 
-case $1 in
---run)
-  # Try to run requested program, and just exit if it succeeds.
-  run=
-  shift
-  "$@" && exit 0
-  # Exit code 63 means version mismatch.  This often happens
-  # when the user try to use an ancient version of a tool on
-  # a file that requires a minimum version.  In this case we
-  # we should proceed has if the program had been absent, or
-  # if --run hadn't been passed.
-  if test $? = 63; then
-    run=:
-    msg="probably too old"
-  fi
-  ;;
+  --run)
+    # Back-compat with the calling convention used by older automake.
+    shift
+    ;;
 
   -h|--h|--he|--hel|--help)
     echo "\
 $0 [OPTION]... PROGRAM [ARGUMENT]...
 
-Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an
-error status if there is no known handling for PROGRAM.
+Run 'PROGRAM [ARGUMENT]...', returning a proper advice when this fails due
+to PROGRAM being missing or too old.
 
 Options:
   -h, --help      display this help and exit
   -v, --version   output version information and exit
-  --run           try to run the given command, and emulate it if it fails
 
 Supported PROGRAM values:
-  aclocal      touch file \`aclocal.m4'
-  autoconf     touch file \`configure'
-  autoheader   touch file \`config.h.in'
-  autom4te     touch the output file, or create a stub one
-  automake     touch all \`Makefile.in' files
-  bison        create \`y.tab.[ch]', if possible, from existing .[ch]
-  flex         create \`lex.yy.c', if possible, from existing .c
-  help2man     touch the output file
-  lex          create \`lex.yy.c', if possible, from existing .c
-  makeinfo     touch the output file
-  yacc         create \`y.tab.[ch]', if possible, from existing .[ch]
+  aclocal   autoconf  autoheader   autom4te  automake  makeinfo
+  bison     yacc      flex         lex       help2man
 
-Version suffixes to PROGRAM as well as the prefixes \`gnu-', \`gnu', and
-\`g' are ignored when checking the name.
+Version suffixes to PROGRAM as well as the prefixes 'gnu-', 'gnu', and
+'g' are ignored when checking the name.
 
 Send bug reports to <bug-automake at gnu.org>."
     exit $?
@@ -99,228 +70,141 @@ Send bug reports to <bug-automake at gnu.org>."
     ;;
 
   -*)
-    echo 1>&2 "$0: Unknown \`$1' option"
-    echo 1>&2 "Try \`$0 --help' for more information"
+    echo 1>&2 "$0: unknown '$1' option"
+    echo 1>&2 "Try '$0 --help' for more information"
     exit 1
     ;;
 
 esac
 
-# normalize program name to check for.
-program=`echo "$1" | sed '
-  s/^gnu-//; t
-  s/^gnu//; t
-  s/^g//; t'`
-
-# Now exit if we have it, but it failed.  Also exit now if we
-# don't have it and --version was passed (most likely to detect
-# the program).  This is about non-GNU programs, so use $1 not
-# $program.
-case $1 in
-  lex*|yacc*)
-    # Not GNU programs, they don't have --version.
-    ;;
-
-  *)
-    if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
-       # We have it, but it failed.
-       exit 1
-    elif test "x$2" = "x--version" || test "x$2" = "x--help"; then
-       # Could not run --version or --help.  This is probably someone
-       # running `$TOOL --version' or `$TOOL --help' to check whether
-       # $TOOL exists and not knowing $TOOL uses missing.
-       exit 1
-    fi
-    ;;
-esac
-
-# If it does not exist, or fails to run (possibly an outdated version),
-# try to emulate it.
-case $program in
-  aclocal*)
-    echo 1>&2 "\
-WARNING: \`$1' is $msg.  You should only need it if
-         you modified \`acinclude.m4' or \`${configure_ac}'.  You might want
-         to install the \`Automake' and \`Perl' packages.  Grab them from
-         any GNU archive site."
-    touch aclocal.m4
-    ;;
-
-  autoconf*)
-    echo 1>&2 "\
-WARNING: \`$1' is $msg.  You should only need it if
-         you modified \`${configure_ac}'.  You might want to install the
-         \`Autoconf' and \`GNU m4' packages.  Grab them from any GNU
-         archive site."
-    touch configure
-    ;;
-
-  autoheader*)
-    echo 1>&2 "\
-WARNING: \`$1' is $msg.  You should only need it if
-         you modified \`acconfig.h' or \`${configure_ac}'.  You might want
-         to install the \`Autoconf' and \`GNU m4' packages.  Grab them
-         from any GNU archive site."
-    files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}`
-    test -z "$files" && files="config.h"
-    touch_files=
-    for f in $files; do
-      case $f in
-      *:*) touch_files="$touch_files "`echo "$f" |
-				       sed -e 's/^[^:]*://' -e 's/:.*//'`;;
-      *) touch_files="$touch_files $f.in";;
-      esac
-    done
-    touch $touch_files
-    ;;
-
-  automake*)
-    echo 1>&2 "\
-WARNING: \`$1' is $msg.  You should only need it if
-         you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'.
-         You might want to install the \`Automake' and \`Perl' packages.
-         Grab them from any GNU archive site."
-    find . -type f -name Makefile.am -print |
-	   sed 's/\.am$/.in/' |
-	   while read f; do touch "$f"; done
-    ;;
-
-  autom4te*)
-    echo 1>&2 "\
-WARNING: \`$1' is needed, but is $msg.
-         You might have modified some files without having the
-         proper tools for further handling them.
-         You can get \`$1' as part of \`Autoconf' from any GNU
-         archive site."
-
-    file=`echo "$*" | sed -n "$sed_output"`
-    test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
-    if test -f "$file"; then
-	touch $file
-    else
-	test -z "$file" || exec >$file
-	echo "#! /bin/sh"
-	echo "# Created by GNU Automake missing as a replacement of"
-	echo "#  $ $@"
-	echo "exit 0"
-	chmod +x $file
-	exit 1
-    fi
-    ;;
-
-  bison*|yacc*)
-    echo 1>&2 "\
-WARNING: \`$1' $msg.  You should only need it if
-         you modified a \`.y' file.  You may need the \`Bison' package
-         in order for those modifications to take effect.  You can get
-         \`Bison' from any GNU archive site."
-    rm -f y.tab.c y.tab.h
-    if test $# -ne 1; then
-        eval LASTARG=\${$#}
-	case $LASTARG in
-	*.y)
-	    SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'`
-	    if test -f "$SRCFILE"; then
-	         cp "$SRCFILE" y.tab.c
-	    fi
-	    SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'`
-	    if test -f "$SRCFILE"; then
-	         cp "$SRCFILE" y.tab.h
-	    fi
-	  ;;
-	esac
-    fi
-    if test ! -f y.tab.h; then
-	echo >y.tab.h
-    fi
-    if test ! -f y.tab.c; then
-	echo 'main() { return 0; }' >y.tab.c
-    fi
-    ;;
-
-  lex*|flex*)
-    echo 1>&2 "\
-WARNING: \`$1' is $msg.  You should only need it if
-         you modified a \`.l' file.  You may need the \`Flex' package
-         in order for those modifications to take effect.  You can get
-         \`Flex' from any GNU archive site."
-    rm -f lex.yy.c
-    if test $# -ne 1; then
-        eval LASTARG=\${$#}
-	case $LASTARG in
-	*.l)
-	    SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'`
-	    if test -f "$SRCFILE"; then
-	         cp "$SRCFILE" lex.yy.c
-	    fi
-	  ;;
-	esac
-    fi
-    if test ! -f lex.yy.c; then
-	echo 'main() { return 0; }' >lex.yy.c
-    fi
-    ;;
-
-  help2man*)
-    echo 1>&2 "\
-WARNING: \`$1' is $msg.  You should only need it if
-	 you modified a dependency of a manual page.  You may need the
-	 \`Help2man' package in order for those modifications to take
-	 effect.  You can get \`Help2man' from any GNU archive site."
-
-    file=`echo "$*" | sed -n "$sed_output"`
-    test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
-    if test -f "$file"; then
-	touch $file
-    else
-	test -z "$file" || exec >$file
-	echo ".ab help2man is required to generate this page"
-	exit $?
-    fi
-    ;;
-
-  makeinfo*)
-    echo 1>&2 "\
-WARNING: \`$1' is $msg.  You should only need it if
-         you modified a \`.texi' or \`.texinfo' file, or any other file
-         indirectly affecting the aspect of the manual.  The spurious
-         call might also be the consequence of using a buggy \`make' (AIX,
-         DU, IRIX).  You might want to install the \`Texinfo' package or
-         the \`GNU make' package.  Grab either from any GNU archive site."
-    # The file to touch is that specified with -o ...
-    file=`echo "$*" | sed -n "$sed_output"`
-    test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
-    if test -z "$file"; then
-      # ... or it is the one specified with @setfilename ...
-      infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'`
-      file=`sed -n '
-	/^@setfilename/{
-	  s/.* \([^ ]*\) *$/\1/
-	  p
-	  q
-	}' $infile`
-      # ... or it is derived from the source name (dir/f.texi becomes f.info)
-      test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info
-    fi
-    # If the file does not exist, the user really needs makeinfo;
-    # let's fail without touching anything.
-    test -f $file || exit 1
-    touch $file
-    ;;
+# Run the given program, remember its exit status.
+"$@"; st=$?
+
+# If it succeeded, we are done.
+test $st -eq 0 && exit 0
+
+# Also exit now if we it failed (or wasn't found), and '--version' was
+# passed; such an option is passed most likely to detect whether the
+# program is present and works.
+case $2 in --version|--help) exit $st;; esac
+
+# Exit code 63 means version mismatch.  This often happens when the user
+# tries to use an ancient version of a tool on a file that requires a
+# minimum version.
+if test $st -eq 63; then
+  msg="probably too old"
+elif test $st -eq 127; then
+  # Program was missing.
+  msg="missing on your system"
+else
+  # Program was found and executed, but failed.  Give up.
+  exit $st
+fi
 
-  *)
-    echo 1>&2 "\
-WARNING: \`$1' is needed, and is $msg.
-         You might have modified some files without having the
-         proper tools for further handling them.  Check the \`README' file,
-         it often tells you about the needed prerequisites for installing
-         this package.  You may also peek at any GNU archive site, in case
-         some other package would contain this missing \`$1' program."
-    exit 1
+perl_URL=http://www.perl.org/
+flex_URL=http://flex.sourceforge.net/
+gnu_software_URL=http://www.gnu.org/software
+
+program_details ()
+{
+  case $1 in
+    aclocal|automake)
+      echo "The '$1' program is part of the GNU Automake package:"
+      echo "<$gnu_software_URL/automake>"
+      echo "It also requires GNU Autoconf, GNU m4 and Perl in order to run:"
+      echo "<$gnu_software_URL/autoconf>"
+      echo "<$gnu_software_URL/m4/>"
+      echo "<$perl_URL>"
+      ;;
+    autoconf|autom4te|autoheader)
+      echo "The '$1' program is part of the GNU Autoconf package:"
+      echo "<$gnu_software_URL/autoconf/>"
+      echo "It also requires GNU m4 and Perl in order to run:"
+      echo "<$gnu_software_URL/m4/>"
+      echo "<$perl_URL>"
+      ;;
+  esac
+}
+
+give_advice ()
+{
+  # Normalize program name to check for.
+  normalized_program=`echo "$1" | sed '
+    s/^gnu-//; t
+    s/^gnu//; t
+    s/^g//; t'`
+
+  printf '%s\n' "'$1' is $msg."
+
+  configure_deps="'configure.ac' or m4 files included by 'configure.ac'"
+  case $normalized_program in
+    autoconf*)
+      echo "You should only need it if you modified 'configure.ac',"
+      echo "or m4 files included by it."
+      program_details 'autoconf'
+      ;;
+    autoheader*)
+      echo "You should only need it if you modified 'acconfig.h' or"
+      echo "$configure_deps."
+      program_details 'autoheader'
+      ;;
+    automake*)
+      echo "You should only need it if you modified 'Makefile.am' or"
+      echo "$configure_deps."
+      program_details 'automake'
+      ;;
+    aclocal*)
+      echo "You should only need it if you modified 'acinclude.m4' or"
+      echo "$configure_deps."
+      program_details 'aclocal'
+      ;;
+   autom4te*)
+      echo "You might have modified some maintainer files that require"
+      echo "the 'autom4te' program to be rebuilt."
+      program_details 'autom4te'
+      ;;
+    bison*|yacc*)
+      echo "You should only need it if you modified a '.y' file."
+      echo "You may want to install the GNU Bison package:"
+      echo "<$gnu_software_URL/bison/>"
+      ;;
+    lex*|flex*)
+      echo "You should only need it if you modified a '.l' file."
+      echo "You may want to install the Fast Lexical Analyzer package:"
+      echo "<$flex_URL>"
+      ;;
+    help2man*)
+      echo "You should only need it if you modified a dependency" \
+           "of a man page."
+      echo "You may want to install the GNU Help2man package:"
+      echo "<$gnu_software_URL/help2man/>"
     ;;
-esac
-
-exit 0
+    makeinfo*)
+      echo "You should only need it if you modified a '.texi' file, or"
+      echo "any other file indirectly affecting the aspect of the manual."
+      echo "You might want to install the Texinfo package:"
+      echo "<$gnu_software_URL/texinfo/>"
+      echo "The spurious makeinfo call might also be the consequence of"
+      echo "using a buggy 'make' (AIX, DU, IRIX), in which case you might"
+      echo "want to install GNU make:"
+      echo "<$gnu_software_URL/make/>"
+      ;;
+    *)
+      echo "You might have modified some files without having the proper"
+      echo "tools for further handling them.  Check the 'README' file, it"
+      echo "often tells you about the needed prerequisites for installing"
+      echo "this package.  You may also peek at any GNU archive site, in"
+      echo "case some other package contains this missing '$1' program."
+      ;;
+  esac
+}
+
+give_advice "$1" | sed -e '1s/^/WARNING: /' \
+                       -e '2,$s/^/         /' >&2
+
+# Propagate the correct exit status (expected to be 127 for a program
+# not found, 63 for a program that failed due to version mismatch).
+exit $st
 
 # Local variables:
 # eval: (add-hook 'write-file-hooks 'time-stamp)
diff --git a/config/test-driver b/config/test-driver
new file mode 100755
index 0000000..d306056
--- /dev/null
+++ b/config/test-driver
@@ -0,0 +1,139 @@
+#! /bin/sh
+# test-driver - basic testsuite driver script.
+
+scriptversion=2013-07-13.22; # UTC
+
+# Copyright (C) 2011-2013 Free Software Foundation, Inc.
+#
+# 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, 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, see <http://www.gnu.org/licenses/>.
+
+# 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.
+
+# This file is maintained in Automake, please report
+# bugs to <bug-automake at gnu.org> or send patches to
+# <automake-patches at gnu.org>.
+
+# Make unconditional expansion of undefined variables an error.  This
+# helps a lot in preventing typo-related bugs.
+set -u
+
+usage_error ()
+{
+  echo "$0: $*" >&2
+  print_usage >&2
+  exit 2
+}
+
+print_usage ()
+{
+  cat <<END
+Usage:
+  test-driver --test-name=NAME --log-file=PATH --trs-file=PATH
+              [--expect-failure={yes|no}] [--color-tests={yes|no}]
+              [--enable-hard-errors={yes|no}] [--]
+              TEST-SCRIPT [TEST-SCRIPT-ARGUMENTS]
+The '--test-name', '--log-file' and '--trs-file' options are mandatory.
+END
+}
+
+test_name= # Used for reporting.
+log_file=  # Where to save the output of the test script.
+trs_file=  # Where to save the metadata of the test run.
+expect_failure=no
+color_tests=no
+enable_hard_errors=yes
+while test $# -gt 0; do
+  case $1 in
+  --help) print_usage; exit $?;;
+  --version) echo "test-driver $scriptversion"; exit $?;;
+  --test-name) test_name=$2; shift;;
+  --log-file) log_file=$2; shift;;
+  --trs-file) trs_file=$2; shift;;
+  --color-tests) color_tests=$2; shift;;
+  --expect-failure) expect_failure=$2; shift;;
+  --enable-hard-errors) enable_hard_errors=$2; shift;;
+  --) shift; break;;
+  -*) usage_error "invalid option: '$1'";;
+   *) break;;
+  esac
+  shift
+done
+
+missing_opts=
+test x"$test_name" = x && missing_opts="$missing_opts --test-name"
+test x"$log_file"  = x && missing_opts="$missing_opts --log-file"
+test x"$trs_file"  = x && missing_opts="$missing_opts --trs-file"
+if test x"$missing_opts" != x; then
+  usage_error "the following mandatory options are missing:$missing_opts"
+fi
+
+if test $# -eq 0; then
+  usage_error "missing argument"
+fi
+
+if test $color_tests = yes; then
+  # Keep this in sync with 'lib/am/check.am:$(am__tty_colors)'.
+  red='' # Red.
+  grn='' # Green.
+  lgn='' # Light green.
+  blu='' # Blue.
+  mgn='' # Magenta.
+  std=''     # No color.
+else
+  red= grn= lgn= blu= mgn= std=
+fi
+
+do_exit='rm -f $log_file $trs_file; (exit $st); exit $st'
+trap "st=129; $do_exit" 1
+trap "st=130; $do_exit" 2
+trap "st=141; $do_exit" 13
+trap "st=143; $do_exit" 15
+
+# Test script is run here.
+"$@" >$log_file 2>&1
+estatus=$?
+if test $enable_hard_errors = no && test $estatus -eq 99; then
+  estatus=1
+fi
+
+case $estatus:$expect_failure in
+  0:yes) col=$red res=XPASS recheck=yes gcopy=yes;;
+  0:*)   col=$grn res=PASS  recheck=no  gcopy=no;;
+  77:*)  col=$blu res=SKIP  recheck=no  gcopy=yes;;
+  99:*)  col=$mgn res=ERROR recheck=yes gcopy=yes;;
+  *:yes) col=$lgn res=XFAIL recheck=no  gcopy=yes;;
+  *:*)   col=$red res=FAIL  recheck=yes gcopy=yes;;
+esac
+
+# Report outcome to console.
+echo "${col}${res}${std}: $test_name"
+
+# Register the test result, and other relevant metadata.
+echo ":test-result: $res" > $trs_file
+echo ":global-test-result: $res" >> $trs_file
+echo ":recheck: $recheck" >> $trs_file
+echo ":copy-in-global-log: $gcopy" >> $trs_file
+
+# Local Variables:
+# mode: shell-script
+# sh-indentation: 2
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "scriptversion="
+# time-stamp-format: "%:y-%02m-%02d.%02H"
+# time-stamp-time-zone: "UTC"
+# time-stamp-end: "; # UTC"
+# End:
diff --git a/configure b/configure
index eb31862..2818dab 100755
--- a/configure
+++ b/configure
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for hkl 4.99.99.1940.
+# Generated by GNU Autoconf 2.69 for hkl 4.99.99.1946.
 #
 # Report bugs to <picca at synchrotron-soleil.fr>.
 #
@@ -590,8 +590,8 @@ MAKEFLAGS=
 # Identity of this package.
 PACKAGE_NAME='hkl'
 PACKAGE_TARNAME='hkl'
-PACKAGE_VERSION='4.99.99.1940'
-PACKAGE_STRING='hkl 4.99.99.1940'
+PACKAGE_VERSION='4.99.99.1946'
+PACKAGE_STRING='hkl 4.99.99.1946'
 PACKAGE_BUGREPORT='picca at synchrotron-soleil.fr'
 PACKAGE_URL=''
 
@@ -676,11 +676,14 @@ GTK_DOC_BUILD_HTML_FALSE
 GTK_DOC_BUILD_HTML_TRUE
 ENABLE_GTK_DOC_FALSE
 ENABLE_GTK_DOC_TRUE
+HAVE_GTK_DOC_FALSE
+HAVE_GTK_DOC_TRUE
 GTKDOC_DEPS_LIBS
 GTKDOC_DEPS_CFLAGS
 HTML_DIR
 GTKDOC_MKPDF
 GTKDOC_REBASE
+GTKDOC_CHECK_PATH
 GTKDOC_CHECK
 EMACS
 ASY
@@ -1421,7 +1424,7 @@ if test "$ac_init_help" = "long"; then
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures hkl 4.99.99.1940 to adapt to many kinds of systems.
+\`configure' configures hkl 4.99.99.1946 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1491,7 +1494,7 @@ fi
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of hkl 4.99.99.1940:";;
+     short | recursive ) echo "Configuration of hkl 4.99.99.1946:";;
    esac
   cat <<\_ACEOF
 
@@ -1499,10 +1502,12 @@ Optional Features:
   --disable-option-checking  ignore unrecognized --enable/--with options
   --disable-FEATURE       do not include FEATURE (same as --enable-FEATURE=no)
   --enable-FEATURE[=ARG]  include FEATURE [ARG=yes]
-  --enable-silent-rules          less verbose build output (undo: `make V=1')
-  --disable-silent-rules         verbose build output (undo: `make V=0')
-  --disable-dependency-tracking  speeds up one-time build
-  --enable-dependency-tracking   do not reject slow dependency extractors
+  --enable-silent-rules   less verbose build output (undo: "make V=1")
+  --disable-silent-rules  verbose build output (undo: "make V=0")
+  --enable-dependency-tracking
+                          do not reject slow dependency extractors
+  --disable-dependency-tracking
+                          speeds up one-time build
   --enable-shared[=PKGS]  build shared libraries [default=yes]
   --enable-static[=PKGS]  build static libraries [default=yes]
   --enable-fast-install[=PKGS]
@@ -1638,7 +1643,7 @@ fi
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-hkl configure 4.99.99.1940
+hkl configure 4.99.99.1946
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2312,7 +2317,7 @@ 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 hkl $as_me 4.99.99.1940, which was
+It was created by hkl $as_me 4.99.99.1946, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -2694,7 +2699,7 @@ ac_configure="$SHELL $ac_aux_dir/configure"  # Please don't use this var.
 
 
 
-am__api_version='1.11'
+am__api_version='1.14'
 
 # Find a good install program.  We prefer a C program (faster),
 # so one script is as good as another.  But avoid the broken or
@@ -2791,9 +2796,6 @@ test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
 
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5
 $as_echo_n "checking whether build environment is sane... " >&6; }
-# Just in case
-sleep 1
-echo timestamp > conftest.file
 # Reject unsafe characters in $srcdir or the absolute working directory
 # name.  Accept space and tab only in the latter.
 am_lf='
@@ -2804,32 +2806,40 @@ case `pwd` in
 esac
 case $srcdir in
   *[\\\"\#\$\&\'\`$am_lf\ \	]*)
-    as_fn_error $? "unsafe srcdir value: \`$srcdir'" "$LINENO" 5;;
+    as_fn_error $? "unsafe srcdir value: '$srcdir'" "$LINENO" 5;;
 esac
 
-# Do `set' in a subshell so we don't clobber the current shell's
+# Do 'set' in a subshell so we don't clobber the current shell's
 # arguments.  Must try -L first in case configure is actually a
 # symlink; some systems play weird games with the mod time of symlinks
 # (eg FreeBSD returns the mod time of the symlink's containing
 # directory).
 if (
-   set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null`
-   if test "$*" = "X"; then
-      # -L didn't work.
-      set X `ls -t "$srcdir/configure" conftest.file`
-   fi
-   rm -f conftest.file
-   if test "$*" != "X $srcdir/configure conftest.file" \
-      && test "$*" != "X conftest.file $srcdir/configure"; then
-
-      # If neither matched, then we have a broken ls.  This can happen
-      # if, for instance, CONFIG_SHELL is bash and it inherits a
-      # broken ls alias from the environment.  This has actually
-      # happened.  Such a system could not be considered "sane".
-      as_fn_error $? "ls -t appears to fail.  Make sure there is not a broken
-alias in your environment" "$LINENO" 5
-   fi
-
+   am_has_slept=no
+   for am_try in 1 2; do
+     echo "timestamp, slept: $am_has_slept" > conftest.file
+     set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null`
+     if test "$*" = "X"; then
+	# -L didn't work.
+	set X `ls -t "$srcdir/configure" conftest.file`
+     fi
+     if test "$*" != "X $srcdir/configure conftest.file" \
+	&& test "$*" != "X conftest.file $srcdir/configure"; then
+
+	# If neither matched, then we have a broken ls.  This can happen
+	# if, for instance, CONFIG_SHELL is bash and it inherits a
+	# broken ls alias from the environment.  This has actually
+	# happened.  Such a system could not be considered "sane".
+	as_fn_error $? "ls -t appears to fail.  Make sure there is not a broken
+  alias in your environment" "$LINENO" 5
+     fi
+     if test "$2" = conftest.file || test $am_try -eq 2; then
+       break
+     fi
+     # Just in case.
+     sleep 1
+     am_has_slept=yes
+   done
    test "$2" = conftest.file
    )
 then
@@ -2841,6 +2851,16 @@ Check your system clock" "$LINENO" 5
 fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 $as_echo "yes" >&6; }
+# If we didn't sleep, we still need to ensure time stamps of config.status and
+# generated files are strictly newer.
+am_sleep_pid=
+if grep 'slept: no' conftest.file >/dev/null 2>&1; then
+  ( sleep 1 ) &
+  am_sleep_pid=$!
+fi
+
+rm -f conftest.file
+
 test "$program_prefix" != NONE &&
   program_transform_name="s&^&$program_prefix&;$program_transform_name"
 # Use a double $ so make ignores it.
@@ -2851,8 +2871,8 @@ test "$program_suffix" != NONE &&
 ac_script='s/[\\$]/&&/g;s/;s,x,x,$//'
 program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"`
 
-# expand $ac_aux_dir to an absolute path
-am_aux_dir=`cd $ac_aux_dir && pwd`
+# Expand $ac_aux_dir to an absolute path.
+am_aux_dir=`cd "$ac_aux_dir" && pwd`
 
 if test x"${MISSING+set}" != xset; then
   case $am_aux_dir in
@@ -2863,12 +2883,12 @@ if test x"${MISSING+set}" != xset; then
   esac
 fi
 # Use eval to expand $SHELL
-if eval "$MISSING --run true"; then
-  am_missing_run="$MISSING --run "
+if eval "$MISSING --is-lightweight"; then
+  am_missing_run="$MISSING "
 else
   am_missing_run=
-  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`missing' script is too old or missing" >&5
-$as_echo "$as_me: WARNING: \`missing' script is too old or missing" >&2;}
+  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: 'missing' script is too old or missing" >&5
+$as_echo "$as_me: WARNING: 'missing' script is too old or missing" >&2;}
 fi
 
 if test x"${install_sh}" != xset; then
@@ -2880,10 +2900,10 @@ if test x"${install_sh}" != xset; then
   esac
 fi
 
-# Installed binaries are usually stripped using `strip' when the user
-# run `make install-strip'.  However `strip' might not be the right
+# Installed binaries are usually stripped using 'strip' when the user
+# run "make install-strip".  However 'strip' might not be the right
 # tool to use in cross-compilation environments, therefore Automake
-# will honor the `STRIP' environment variable to overrule this program.
+# will honor the 'STRIP' environment variable to overrule this program.
 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.
@@ -3022,12 +3042,6 @@ fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5
 $as_echo "$MKDIR_P" >&6; }
 
-mkdir_p="$MKDIR_P"
-case $mkdir_p in
-  [\\/$]* | ?:[\\/]*) ;;
-  */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;;
-esac
-
 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.
@@ -3115,10 +3129,10 @@ if test "${enable_silent_rules+set}" = set; then :
   enableval=$enable_silent_rules;
 fi
 
-case $enable_silent_rules in
-yes) AM_DEFAULT_VERBOSITY=0;;
-no)  AM_DEFAULT_VERBOSITY=1;;
-*)   AM_DEFAULT_VERBOSITY=1;;
+case $enable_silent_rules in # (((
+  yes) AM_DEFAULT_VERBOSITY=0;;
+   no) AM_DEFAULT_VERBOSITY=1;;
+    *) AM_DEFAULT_VERBOSITY=1;;
 esac
 am_make=${MAKE-make}
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $am_make supports nested variables" >&5
@@ -3171,7 +3185,7 @@ fi
 
 # Define the identity of the package.
  PACKAGE='hkl'
- VERSION='4.99.99.1940'
+ VERSION='4.99.99.1946'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -3199,6 +3213,12 @@ AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"}
 
 MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"}
 
+# For better backward compatibility.  To be removed once Automake 1.9.x
+# dies out for good.  For more background, see:
+# <http://lists.gnu.org/archive/html/automake/2012-07/msg00001.html>
+# <http://lists.gnu.org/archive/html/automake/2012-07/msg00014.html>
+mkdir_p='$(MKDIR_P)'
+
 # We need awk for the "check" target.  The system "awk" is bad on
 # some platforms.
 # Always define AMTAR for backward compatibility.  Yes, it's still used
@@ -3206,86 +3226,125 @@ MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"}
 AMTAR='$${TAR-tar}'
 
 
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to create a ustar tar archive" >&5
-$as_echo_n "checking how to create a ustar tar archive... " >&6; }
-# Loop over all known methods to create a tar archive until one works.
+# We'll loop over all known methods to create a tar archive until one works.
 _am_tools='gnutar plaintar pax cpio none'
-_am_tools=${am_cv_prog_tar_ustar-$_am_tools}
-# Do not fold the above two line into one, because Tru64 sh and
-# Solaris sh will not grok spaces in the rhs of `-'.
-for _am_tool in $_am_tools
-do
-  case $_am_tool in
-  gnutar)
-    for _am_tar in tar gnutar gtar;
-    do
-      { echo "$as_me:$LINENO: $_am_tar --version" >&5
+
+# The POSIX 1988 'ustar' format is defined with fixed-size fields.
+      # There is notably a 21 bits limit for the UID and the GID.  In fact,
+      # the 'pax' utility can hang on bigger UID/GID (see automake bug#8343
+      # and bug#13588).
+      am_max_uid=2097151 # 2^21 - 1
+      am_max_gid=$am_max_uid
+      # The $UID and $GID variables are not portable, so we need to resort
+      # to the POSIX-mandated id(1) utility.  Errors in the 'id' calls
+      # below are definitely unexpected, so allow the users to see them
+      # (that is, avoid stderr redirection).
+      am_uid=`id -u || echo unknown`
+      am_gid=`id -g || echo unknown`
+      { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether UID '$am_uid' is supported by ustar format" >&5
+$as_echo_n "checking whether UID '$am_uid' is supported by ustar format... " >&6; }
+      if test $am_uid -le $am_max_uid; then
+         { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+      else
+         { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+         _am_tools=none
+      fi
+      { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether GID '$am_gid' is supported by ustar format" >&5
+$as_echo_n "checking whether GID '$am_gid' is supported by ustar format... " >&6; }
+      if test $am_gid -le $am_max_gid; then
+         { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+      else
+        { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+        _am_tools=none
+      fi
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to create a ustar tar archive" >&5
+$as_echo_n "checking how to create a ustar tar archive... " >&6; }
+
+  # Go ahead even if we have the value already cached.  We do so because we
+  # need to set the values for the 'am__tar' and 'am__untar' variables.
+  _am_tools=${am_cv_prog_tar_ustar-$_am_tools}
+
+  for _am_tool in $_am_tools; do
+    case $_am_tool in
+    gnutar)
+      for _am_tar in tar gnutar gtar; do
+        { echo "$as_me:$LINENO: $_am_tar --version" >&5
    ($_am_tar --version) >&5 2>&5
    ac_status=$?
    echo "$as_me:$LINENO: \$? = $ac_status" >&5
    (exit $ac_status); } && break
-    done
-    am__tar="$_am_tar --format=ustar -chf - "'"$$tardir"'
-    am__tar_="$_am_tar --format=ustar -chf - "'"$tardir"'
-    am__untar="$_am_tar -xf -"
-    ;;
-  plaintar)
-    # Must skip GNU tar: if it does not support --format= it doesn't create
-    # ustar tarball either.
-    (tar --version) >/dev/null 2>&1 && continue
-    am__tar='tar chf - "$$tardir"'
-    am__tar_='tar chf - "$tardir"'
-    am__untar='tar xf -'
-    ;;
-  pax)
-    am__tar='pax -L -x ustar -w "$$tardir"'
-    am__tar_='pax -L -x ustar -w "$tardir"'
-    am__untar='pax -r'
-    ;;
-  cpio)
-    am__tar='find "$$tardir" -print | cpio -o -H ustar -L'
-    am__tar_='find "$tardir" -print | cpio -o -H ustar -L'
-    am__untar='cpio -i -H ustar -d'
-    ;;
-  none)
-    am__tar=false
-    am__tar_=false
-    am__untar=false
-    ;;
-  esac
+      done
+      am__tar="$_am_tar --format=ustar -chf - "'"$$tardir"'
+      am__tar_="$_am_tar --format=ustar -chf - "'"$tardir"'
+      am__untar="$_am_tar -xf -"
+      ;;
+    plaintar)
+      # Must skip GNU tar: if it does not support --format= it doesn't create
+      # ustar tarball either.
+      (tar --version) >/dev/null 2>&1 && continue
+      am__tar='tar chf - "$$tardir"'
+      am__tar_='tar chf - "$tardir"'
+      am__untar='tar xf -'
+      ;;
+    pax)
+      am__tar='pax -L -x ustar -w "$$tardir"'
+      am__tar_='pax -L -x ustar -w "$tardir"'
+      am__untar='pax -r'
+      ;;
+    cpio)
+      am__tar='find "$$tardir" -print | cpio -o -H ustar -L'
+      am__tar_='find "$tardir" -print | cpio -o -H ustar -L'
+      am__untar='cpio -i -H ustar -d'
+      ;;
+    none)
+      am__tar=false
+      am__tar_=false
+      am__untar=false
+      ;;
+    esac
 
-  # If the value was cached, stop now.  We just wanted to have am__tar
-  # and am__untar set.
-  test -n "${am_cv_prog_tar_ustar}" && break
+    # If the value was cached, stop now.  We just wanted to have am__tar
+    # and am__untar set.
+    test -n "${am_cv_prog_tar_ustar}" && break
 
-  # tar/untar a dummy directory, and stop if the command works
-  rm -rf conftest.dir
-  mkdir conftest.dir
-  echo GrepMe > conftest.dir/file
-  { echo "$as_me:$LINENO: tardir=conftest.dir && eval $am__tar_ >conftest.tar" >&5
+    # tar/untar a dummy directory, and stop if the command works.
+    rm -rf conftest.dir
+    mkdir conftest.dir
+    echo GrepMe > conftest.dir/file
+    { echo "$as_me:$LINENO: tardir=conftest.dir && eval $am__tar_ >conftest.tar" >&5
    (tardir=conftest.dir && eval $am__tar_ >conftest.tar) >&5 2>&5
    ac_status=$?
    echo "$as_me:$LINENO: \$? = $ac_status" >&5
    (exit $ac_status); }
-  rm -rf conftest.dir
-  if test -s conftest.tar; then
-    { echo "$as_me:$LINENO: $am__untar <conftest.tar" >&5
+    rm -rf conftest.dir
+    if test -s conftest.tar; then
+      { echo "$as_me:$LINENO: $am__untar <conftest.tar" >&5
    ($am__untar <conftest.tar) >&5 2>&5
    ac_status=$?
    echo "$as_me:$LINENO: \$? = $ac_status" >&5
    (exit $ac_status); }
-    grep GrepMe conftest.dir/file >/dev/null 2>&1 && break
-  fi
-done
-rm -rf conftest.dir
+      { echo "$as_me:$LINENO: cat conftest.dir/file" >&5
+   (cat conftest.dir/file) >&5 2>&5
+   ac_status=$?
+   echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); }
+      grep GrepMe conftest.dir/file >/dev/null 2>&1 && break
+    fi
+  done
+  rm -rf conftest.dir
 
-if ${am_cv_prog_tar_ustar+:} false; then :
+  if ${am_cv_prog_tar_ustar+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   am_cv_prog_tar_ustar=$_am_tool
 fi
 
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_tar_ustar" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_tar_ustar" >&5
 $as_echo "$am_cv_prog_tar_ustar" >&6; }
 
 
@@ -3293,6 +3352,49 @@ $as_echo "$am_cv_prog_tar_ustar" >&6; }
 
 
 
+# POSIX will say in a future version that running "rm -f" with no argument
+# is OK; and we want to be able to make that assumption in our Makefile
+# recipes.  So use an aggressive probe to check that the usage we want is
+# actually supported "in the wild" to an acceptable degree.
+# See automake bug#10828.
+# To make any issue more visible, cause the running configure to be aborted
+# by default if the 'rm' program in use doesn't match our expectations; the
+# user can still override this though.
+if rm -f && rm -fr && rm -rf; then : OK; else
+  cat >&2 <<'END'
+Oops!
+
+Your 'rm' program seems unable to run without file operands specified
+on the command line, even when the '-f' option is present.  This is contrary
+to the behaviour of most rm programs out there, and not conforming with
+the upcoming POSIX standard: <http://austingroupbugs.net/view.php?id=542>
+
+Please tell bug-automake at gnu.org about your system, including the value
+of your $PATH and any error possibly output before this message.  This
+can help us improve future automake versions.
+
+END
+  if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then
+    echo 'Configuration will proceed anyway, since you have set the' >&2
+    echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2
+    echo >&2
+  else
+    cat >&2 <<'END'
+Aborting the configuration process, to ensure you take notice of the issue.
+
+You can download and install GNU coreutils to get an 'rm' implementation
+that behaves properly: <http://www.gnu.org/software/coreutils/>.
+
+If you want to complete the configuration process using your problematic
+'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM
+to "yes", and re-run configure.
+
+END
+    as_fn_error $? "Your 'rm' program is bad, sorry." "$LINENO" 5
+  fi
+fi
+
+
 # Checks for programs.
 for ac_prog in gawk mawk nawk awk
 do
@@ -3355,7 +3457,7 @@ am__quote=
 _am_result=none
 # First try GNU make style include.
 echo "include confinc" > confmf
-# Ignore all kinds of additional output from `make'.
+# Ignore all kinds of additional output from 'make'.
 case `$am_make -s -f confmf 2> /dev/null` in #(
 *the\ am__doit\ target*)
   am__include=include
@@ -4188,6 +4290,65 @@ 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
 
+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
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC understands -c and -o together" >&5
+$as_echo_n "checking whether $CC understands -c and -o together... " >&6; }
+if ${am_cv_prog_cc_c_o+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+  # Make sure it works both with $CC and with simple cc.
+  # Following AC_PROG_CC_C_O, we do the test twice because some
+  # compilers refuse to overwrite an existing .o file with -o,
+  # though they will create one.
+  am_cv_prog_cc_c_o=yes
+  for am_i in 1 2; do
+    if { echo "$as_me:$LINENO: $CC -c conftest.$ac_ext -o conftest2.$ac_objext" >&5
+   ($CC -c conftest.$ac_ext -o conftest2.$ac_objext) >&5 2>&5
+   ac_status=$?
+   echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); } \
+         && test -f conftest2.$ac_objext; then
+      : OK
+    else
+      am_cv_prog_cc_c_o=no
+      break
+    fi
+  done
+  rm -f core conftest*
+  unset am_i
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_cc_c_o" >&5
+$as_echo "$am_cv_prog_cc_c_o" >&6; }
+if test "$am_cv_prog_cc_c_o" != yes; then
+   # Losing compiler, so override with the script.
+   # FIXME: It is wrong to rewrite CC.
+   # But if we don't then we get into trouble of one sort or another.
+   # A longer-term fix would be to have automake use am__CC in this case,
+   # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)"
+   CC="$am_aux_dir/compile $CC"
+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
+
+
 depcc="$CC"   am_compiler_list=
 
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5
@@ -4199,8 +4360,8 @@ else
   # We make a subdir and do the tests there.  Otherwise we can end up
   # making bogus files that we don't know about and never remove.  For
   # instance it was reported that on HP-UX the gcc test will end up
-  # making a dummy file named `D' -- because `-MD' means `put the output
-  # in D'.
+  # making a dummy file named 'D' -- because '-MD' means "put the output
+  # in D".
   rm -rf conftest.dir
   mkdir conftest.dir
   # Copy depcomp to subdir because otherwise we won't find it if we're
@@ -4235,16 +4396,16 @@ else
     : > sub/conftest.c
     for i in 1 2 3 4 5 6; do
       echo '#include "conftst'$i'.h"' >> sub/conftest.c
-      # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with
-      # Solaris 8's {/usr,}/bin/sh.
-      touch sub/conftst$i.h
+      # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with
+      # Solaris 10 /bin/sh.
+      echo '/* dummy */' > sub/conftst$i.h
     done
     echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
 
-    # We check with `-c' and `-o' for the sake of the "dashmstdout"
+    # We check with '-c' and '-o' for the sake of the "dashmstdout"
     # mode.  It turns out that the SunPro C++ compiler does not properly
-    # handle `-M -o', and we need to detect this.  Also, some Intel
-    # versions had trouble with output in subdirs
+    # handle '-M -o', and we need to detect this.  Also, some Intel
+    # versions had trouble with output in subdirs.
     am__obj=sub/conftest.${OBJEXT-o}
     am__minus_obj="-o $am__obj"
     case $depmode in
@@ -4253,8 +4414,8 @@ else
       test "$am__universal" = false || continue
       ;;
     nosideeffect)
-      # after this tag, mechanisms are not by side-effect, so they'll
-      # only be used when explicitly requested
+      # After this tag, mechanisms are not by side-effect, so they'll
+      # only be used when explicitly requested.
       if test "x$enable_dependency_tracking" = xyes; then
 	continue
       else
@@ -4262,7 +4423,7 @@ else
       fi
       ;;
     msvc7 | msvc7msys | msvisualcpp | msvcmsys)
-      # This compiler won't grok `-c -o', but also, the minuso test has
+      # This compiler won't grok '-c -o', but also, the minuso test has
       # not run yet.  These depmodes are late enough in the game, and
       # so weak that their functioning should not be impacted.
       am__obj=conftest.${OBJEXT-o}
@@ -4761,8 +4922,8 @@ else
   # We make a subdir and do the tests there.  Otherwise we can end up
   # making bogus files that we don't know about and never remove.  For
   # instance it was reported that on HP-UX the gcc test will end up
-  # making a dummy file named `D' -- because `-MD' means `put the output
-  # in D'.
+  # making a dummy file named 'D' -- because '-MD' means "put the output
+  # in D".
   rm -rf conftest.dir
   mkdir conftest.dir
   # Copy depcomp to subdir because otherwise we won't find it if we're
@@ -4797,16 +4958,16 @@ else
     : > sub/conftest.c
     for i in 1 2 3 4 5 6; do
       echo '#include "conftst'$i'.h"' >> sub/conftest.c
-      # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with
-      # Solaris 8's {/usr,}/bin/sh.
-      touch sub/conftst$i.h
+      # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with
+      # Solaris 10 /bin/sh.
+      echo '/* dummy */' > sub/conftst$i.h
     done
     echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
 
-    # We check with `-c' and `-o' for the sake of the "dashmstdout"
+    # We check with '-c' and '-o' for the sake of the "dashmstdout"
     # mode.  It turns out that the SunPro C++ compiler does not properly
-    # handle `-M -o', and we need to detect this.  Also, some Intel
-    # versions had trouble with output in subdirs
+    # handle '-M -o', and we need to detect this.  Also, some Intel
+    # versions had trouble with output in subdirs.
     am__obj=sub/conftest.${OBJEXT-o}
     am__minus_obj="-o $am__obj"
     case $depmode in
@@ -4815,8 +4976,8 @@ else
       test "$am__universal" = false || continue
       ;;
     nosideeffect)
-      # after this tag, mechanisms are not by side-effect, so they'll
-      # only be used when explicitly requested
+      # After this tag, mechanisms are not by side-effect, so they'll
+      # only be used when explicitly requested.
       if test "x$enable_dependency_tracking" = xyes; then
 	continue
       else
@@ -4824,7 +4985,7 @@ else
       fi
       ;;
     msvc7 | msvc7msys | msvisualcpp | msvcmsys)
-      # This compiler won't grok `-c -o', but also, the minuso test has
+      # This compiler won't grok '-c -o', but also, the minuso test has
       # not run yet.  These depmodes are late enough in the game, and
       # so weak that their functioning should not be impacted.
       am__obj=conftest.${OBJEXT-o}
@@ -5932,7 +6093,8 @@ else
     ;;
   *)
     lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null`
-    if test -n "$lt_cv_sys_max_cmd_len"; then
+    if test -n "$lt_cv_sys_max_cmd_len" && \
+	test undefined != "$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
@@ -7453,7 +7615,7 @@ ia64-*-hpux*)
   rm -rf conftest*
   ;;
 
-x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \
+x86_64-*kfreebsd*-gnu|x86_64-*linux*|powerpc*-*linux*| \
 s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
   # Find out which ABI we are using.
   echo 'int i;' > conftest.$ac_ext
@@ -7469,9 +7631,19 @@ s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
 	    LD="${LD-ld} -m elf_i386_fbsd"
 	    ;;
 	  x86_64-*linux*)
-	    LD="${LD-ld} -m elf_i386"
+	    case `/usr/bin/file conftest.o` in
+	      *x86-64*)
+		LD="${LD-ld} -m elf32_x86_64"
+		;;
+	      *)
+		LD="${LD-ld} -m elf_i386"
+		;;
+	    esac
+	    ;;
+	  powerpc64le-*)
+	    LD="${LD-ld} -m elf32lppclinux"
 	    ;;
-	  ppc64-*linux*|powerpc64-*linux*)
+	  powerpc64-*)
 	    LD="${LD-ld} -m elf32ppclinux"
 	    ;;
 	  s390x-*linux*)
@@ -7490,7 +7662,10 @@ s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
 	  x86_64-*linux*)
 	    LD="${LD-ld} -m elf_x86_64"
 	    ;;
-	  ppc*-*linux*|powerpc*-*linux*)
+	  powerpcle-*)
+	    LD="${LD-ld} -m elf64lppc"
+	    ;;
+	  powerpc-*)
 	    LD="${LD-ld} -m elf64ppc"
 	    ;;
 	  s390*-*linux*|s390*-*tpf*)
@@ -15698,10 +15873,10 @@ if test "${enable_silent_rules+set}" = set; then :
   enableval=$enable_silent_rules;
 fi
 
-case $enable_silent_rules in
-yes) AM_DEFAULT_VERBOSITY=0;;
-no)  AM_DEFAULT_VERBOSITY=1;;
-*)   AM_DEFAULT_VERBOSITY=1;;
+case $enable_silent_rules in # (((
+  yes) AM_DEFAULT_VERBOSITY=0;;
+   no) AM_DEFAULT_VERBOSITY=1;;
+    *) AM_DEFAULT_VERBOSITY=1;;
 esac
 am_make=${MAKE-make}
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $am_make supports nested variables" >&5
@@ -15754,7 +15929,7 @@ _ACEOF
 
 
 cat >>confdefs.h <<_ACEOF
-#define VREV 1940
+#define VREV 1946
 _ACEOF
 
 version_info="103:99:99"
@@ -16222,13 +16397,10 @@ int
 main ()
 {
   unsigned int major, minor, micro;
-  char *tmp_version;
 
   fclose (fopen ("conf.glibtest", "w"));
 
-  /* HP/UX 9 (%@#!) writes to sscanf strings */
-  tmp_version = g_strdup("$min_glib_version");
-  if (sscanf(tmp_version, "%u.%u.%u", &major, &minor, &micro) != 3) {
+  if (sscanf("$min_glib_version", "%u.%u.%u", &major, &minor, &micro) != 3) {
      printf("%s, bad version string\n", "$min_glib_version");
      exit(1);
    }
@@ -17294,16 +17466,78 @@ fi
 
 
 
-    # Extract the first word of "gtkdoc-check", so it can be a program name with args.
+  gtk_doc_requires="gtk-doc >= 1.9"
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gtk-doc" >&5
+$as_echo_n "checking for gtk-doc... " >&6; }
+  if test -n "$PKG_CONFIG" && \
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$gtk_doc_requires\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "$gtk_doc_requires") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+  have_gtk_doc=yes
+else
+  have_gtk_doc=no
+fi
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $have_gtk_doc" >&5
+$as_echo "$have_gtk_doc" >&6; }
+
+  if test "$have_gtk_doc" = "no"; then
+      { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING:
+  You will not be able to create source packages with 'make dist'
+  because $gtk_doc_requires is not found." >&5
+$as_echo "$as_me: WARNING:
+  You will not be able to create source packages with 'make dist'
+  because $gtk_doc_requires is not found." >&2;}
+  fi
+
+            # Extract the first word of "gtkdoc-check", so it can be a program name with args.
 set dummy gtkdoc-check; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_GTKDOC_CHECK+:} false; then :
+if ${ac_cv_prog_GTKDOC_CHECK+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-  case $GTKDOC_CHECK in
+  if test -n "$GTKDOC_CHECK"; then
+  ac_cv_prog_GTKDOC_CHECK="$GTKDOC_CHECK" # 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_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_GTKDOC_CHECK="gtkdoc-check.test"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+GTKDOC_CHECK=$ac_cv_prog_GTKDOC_CHECK
+if test -n "$GTKDOC_CHECK"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GTKDOC_CHECK" >&5
+$as_echo "$GTKDOC_CHECK" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+  # Extract the first word of "gtkdoc-check", so it can be a program name with args.
+set dummy gtkdoc-check; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_GTKDOC_CHECK_PATH+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $GTKDOC_CHECK_PATH in
   [\\/]* | ?:[\\/]*)
-  ac_cv_path_GTKDOC_CHECK="$GTKDOC_CHECK" # Let the user override the test with a path.
+  ac_cv_path_GTKDOC_CHECK_PATH="$GTKDOC_CHECK_PATH" # Let the user override the test with a path.
   ;;
   *)
   as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
@@ -17313,7 +17547,7 @@ do
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
   if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_path_GTKDOC_CHECK="$as_dir/$ac_word$ac_exec_ext"
+    ac_cv_path_GTKDOC_CHECK_PATH="$as_dir/$ac_word$ac_exec_ext"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
@@ -17324,10 +17558,10 @@ IFS=$as_save_IFS
   ;;
 esac
 fi
-GTKDOC_CHECK=$ac_cv_path_GTKDOC_CHECK
-if test -n "$GTKDOC_CHECK"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GTKDOC_CHECK" >&5
-$as_echo "$GTKDOC_CHECK" >&6; }
+GTKDOC_CHECK_PATH=$ac_cv_path_GTKDOC_CHECK_PATH
+if test -n "$GTKDOC_CHECK_PATH"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GTKDOC_CHECK_PATH" >&5
+$as_echo "$GTKDOC_CHECK_PATH" >&6; }
 else
   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
@@ -17440,18 +17674,19 @@ else
 fi
 
 
-  if test x$enable_gtk_doc = xyes; then
-    if test -n "$PKG_CONFIG" && \
-    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gtk-doc >= 1.9\""; } >&5
-  ($PKG_CONFIG --exists --print-errors "gtk-doc >= 1.9") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; then
-  :
-else
-  as_fn_error $? "You need to have gtk-doc >= 1.9 installed to build $PACKAGE_NAME" "$LINENO" 5
-fi
-        if test "x$PACKAGE_NAME" != "xglib"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build gtk-doc documentation" >&5
+$as_echo_n "checking whether to build gtk-doc documentation... " >&6; }
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_gtk_doc" >&5
+$as_echo "$enable_gtk_doc" >&6; }
+
+  if test "x$enable_gtk_doc" = "xyes" && test "$have_gtk_doc" = "no"; then
+    as_fn_error $? "
+  You must have $gtk_doc_requires installed to build documentation for
+  $PACKAGE_NAME. Please install gtk-doc or disable building the
+  documentation by adding '--disable-gtk-doc' to '$0'." "$LINENO" 5
+  fi
+
+    if test "x$PACKAGE_NAME" != "xglib"; then
 
 pkg_failed=no
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GTKDOC_DEPS" >&5
@@ -17511,31 +17746,11 @@ fi
 	# Put the nasty error message in config.log where it belongs
 	echo "$GTKDOC_DEPS_PKG_ERRORS" >&5
 
-	as_fn_error $? "Package requirements (glib-2.0 >= 2.10.0 gobject-2.0  >= 2.10.0) were not met:
-
-$GTKDOC_DEPS_PKG_ERRORS
-
-Consider adjusting the PKG_CONFIG_PATH environment variable if you
-installed software in a non-standard prefix.
-
-Alternatively, you may set the environment variables GTKDOC_DEPS_CFLAGS
-and GTKDOC_DEPS_LIBS to avoid the need to call pkg-config.
-See the pkg-config man page for more details." "$LINENO" 5
+	:
 elif test $pkg_failed = untried; then
      	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
-	{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "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.
-
-Alternatively, you may set the environment variables GTKDOC_DEPS_CFLAGS
-and GTKDOC_DEPS_LIBS to avoid the need to call pkg-config.
-See the pkg-config man page for more details.
-
-To get pkg-config, see <http://pkg-config.freedesktop.org/>.
-See \`config.log' for more details" "$LINENO" 5; }
+	:
 else
 	GTKDOC_DEPS_CFLAGS=$pkg_cv_GTKDOC_DEPS_CFLAGS
 	GTKDOC_DEPS_LIBS=$pkg_cv_GTKDOC_DEPS_LIBS
@@ -17543,14 +17758,8 @@ else
 $as_echo "yes" >&6; }
 
 fi
-    fi
   fi
 
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build gtk-doc documentation" >&5
-$as_echo_n "checking whether to build gtk-doc documentation... " >&6; }
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_gtk_doc" >&5
-$as_echo "$enable_gtk_doc" >&6; }
-
     # Check whether --enable-gtk-doc-html was given.
 if test "${enable_gtk_doc_html+set}" = set; then :
   enableval=$enable_gtk_doc_html;
@@ -17570,6 +17779,18 @@ fi
     enable_gtk_doc_pdf=no
   fi
 
+  if test -z "$AM_DEFAULT_VERBOSITY"; then
+    AM_DEFAULT_VERBOSITY=1
+  fi
+
+
+   if test x$have_gtk_doc = xyes; then
+  HAVE_GTK_DOC_TRUE=
+  HAVE_GTK_DOC_FALSE='#'
+else
+  HAVE_GTK_DOC_TRUE='#'
+  HAVE_GTK_DOC_FALSE=
+fi
 
    if test x$enable_gtk_doc = xyes; then
   ENABLE_GTK_DOC_TRUE=
@@ -18716,6 +18937,14 @@ LIBOBJS=$ac_libobjs
 LTLIBOBJS=$ac_ltlibobjs
 
 
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking that generated files are newer than configure" >&5
+$as_echo_n "checking that generated files are newer than configure... " >&6; }
+   if test -n "$am_sleep_pid"; then
+     # Hide warnings about reused PIDs.
+     wait $am_sleep_pid 2>/dev/null
+   fi
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: done" >&5
+$as_echo "done" >&6; }
  if test -n "$EXEEXT"; then
   am__EXEEXT_TRUE=
   am__EXEEXT_FALSE='#'
@@ -18744,6 +18973,10 @@ if test -z "${HKL_DOC_TRUE}" && test -z "${HKL_DOC_FALSE}"; then
   as_fn_error $? "conditional \"HKL_DOC\" was never defined.
 Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
+if test -z "${HAVE_GTK_DOC_TRUE}" && test -z "${HAVE_GTK_DOC_FALSE}"; then
+  as_fn_error $? "conditional \"HAVE_GTK_DOC\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
 if test -z "${ENABLE_GTK_DOC_TRUE}" && test -z "${ENABLE_GTK_DOC_FALSE}"; then
   as_fn_error $? "conditional \"ENABLE_GTK_DOC\" was never defined.
 Usually this means the macro was only invoked conditionally." "$LINENO" 5
@@ -19173,7 +19406,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by hkl $as_me 4.99.99.1940, which was
+This file was extended by hkl $as_me 4.99.99.1946, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -19239,7 +19472,7 @@ _ACEOF
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
-hkl config.status 4.99.99.1940
+hkl config.status 4.99.99.1946
 configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 
@@ -20359,7 +20592,7 @@ $as_echo "$as_me: executing $ac_file commands" >&6;}
 
   case $ac_file$ac_mode in
     "depfiles":C) test x"$AMDEP_TRUE" != x"" || {
-  # Autoconf 2.62 quotes --file arguments for eval, but not when files
+  # Older Autoconf quotes --file arguments for eval, but not when files
   # are listed without --file.  Let's play safe and only enable the eval
   # if we detect the quoting.
   case $CONFIG_FILES in
@@ -20372,7 +20605,7 @@ $as_echo "$as_me: executing $ac_file commands" >&6;}
     # 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.
-    # We used to match only the files named `Makefile.in', but
+    # We used to match only the files named 'Makefile.in', but
     # some people rename them; so instead we look at the file content.
     # Grep'ing the first line is not enough: some people post-process
     # each Makefile.in and add a new line on top of each file to say so.
@@ -20406,21 +20639,19 @@ $as_echo X"$mf" |
       continue
     fi
     # Extract the definition of DEPDIR, am__include, and am__quote
-    # from the Makefile without running `make'.
+    # from the Makefile without running 'make'.
     DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
     test -z "$DEPDIR" && continue
     am__include=`sed -n 's/^am__include = //p' < "$mf"`
-    test -z "am__include" && continue
+    test -z "$am__include" && continue
     am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
-    # When using ansi2knr, U may be empty or an underscore; expand it
-    U=`sed -n 's/^U = //p' < "$mf"`
     # Find all dependency output files, they are included files with
     # $(DEPDIR) in their names.  We invoke sed twice because it is the
     # simplest approach to changing $(DEPDIR) to its actual value in the
     # expansion.
     for file in `sed -n "
       s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
-	 sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do
+	 sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g'`; do
       # Make sure the directory exists.
       test -f "$dirpart/$file" && continue
       fdir=`$as_dirname -- "$file" ||
diff --git a/data/Makefile.in b/data/Makefile.in
index a659f42..ed0ee97 100644
--- a/data/Makefile.in
+++ b/data/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.14.1 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
-# Foundation, Inc.
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -16,23 +15,51 @@
 @SET_MAKE@
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -52,7 +79,7 @@ POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
 subdir = data
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/m4/gtk-doc.m4 \
 	$(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
@@ -64,12 +91,18 @@ mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
 CONFIG_CLEAN_VPATH_FILES =
+AM_V_P = $(am__v_P_ at AM_V@)
+am__v_P_ = $(am__v_P_ at AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
 AM_V_GEN = $(am__v_GEN_ at AM_V@)
 am__v_GEN_ = $(am__v_GEN_ at AM_DEFAULT_V@)
-am__v_GEN_0 = @echo "  GEN   " $@;
+am__v_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
 AM_V_at = $(am__v_at_ at AM_V@)
 am__v_at_ = $(am__v_at_ at AM_DEFAULT_V@)
 am__v_at_0 = @
+am__v_at_1 = 
 SOURCES =
 DIST_SOURCES =
 am__can_run_installinfo = \
@@ -106,6 +139,7 @@ am__uninstall_files_from_dir = { \
   }
 am__installdirs = "$(DESTDIR)$(hkl3ddir)"
 DATA = $(hkl3d_DATA)
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ALLOCA = @ALLOCA@
@@ -158,6 +192,7 @@ GSL_CFLAGS = @GSL_CFLAGS@
 GSL_CONFIG = @GSL_CONFIG@
 GSL_LIBS = @GSL_LIBS@
 GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_CHECK_PATH = @GTKDOC_CHECK_PATH@
 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
 GTKDOC_MKPDF = @GTKDOC_MKPDF@
@@ -338,11 +373,11 @@ uninstall-hkl3dDATA:
 	@list='$(hkl3d_DATA)'; test -n "$(hkl3ddir)" || list=; \
 	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
 	dir='$(DESTDIR)$(hkl3ddir)'; $(am__uninstall_files_from_dir)
-tags: TAGS
-TAGS:
+tags TAGS:
+
+ctags CTAGS:
 
-ctags: CTAGS
-CTAGS:
+cscope cscopelist:
 
 
 distdir: $(DISTFILES)
@@ -481,16 +516,16 @@ uninstall-am: uninstall-hkl3dDATA
 .MAKE: install-am install-strip
 
 .PHONY: all all-am check check-am clean clean-generic clean-libtool \
-	distclean distclean-generic distclean-libtool distdir dvi \
-	dvi-am html html-am info info-am install install-am \
-	install-data install-data-am install-dvi install-dvi-am \
-	install-exec install-exec-am install-hkl3dDATA install-html \
-	install-html-am install-info install-info-am install-man \
-	install-pdf install-pdf-am install-ps install-ps-am \
-	install-strip installcheck installcheck-am installdirs \
-	maintainer-clean maintainer-clean-generic mostlyclean \
-	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
-	uninstall uninstall-am uninstall-hkl3dDATA
+	cscopelist-am ctags-am distclean distclean-generic \
+	distclean-libtool distdir dvi dvi-am html html-am info info-am \
+	install install-am install-data install-data-am install-dvi \
+	install-dvi-am install-exec install-exec-am install-hkl3dDATA \
+	install-html install-html-am install-info install-info-am \
+	install-man install-pdf install-pdf-am install-ps \
+	install-ps-am install-strip installcheck installcheck-am \
+	installdirs maintainer-clean maintainer-clean-generic \
+	mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \
+	ps ps-am tags-am uninstall uninstall-am uninstall-hkl3dDATA
 
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
diff --git a/gtk-doc.make b/gtk-doc.make
index 9841de4..e791656 100644
--- a/gtk-doc.make
+++ b/gtk-doc.make
@@ -49,9 +49,13 @@ REPORT_FILES = \
 	$(DOC_MODULE)-undeclared.txt \
 	$(DOC_MODULE)-unused.txt
 
-CLEANFILES = $(SCANOBJ_FILES) $(REPORT_FILES) $(DOC_STAMPS)
+gtkdoc-check.test: Makefile
+	$(AM_V_GEN)echo "#!/bin/sh -e" > $@; \
+		echo "$(GTKDOC_CHECK_PATH) || exit 1" >> $@; \
+		chmod +x $@
+
+CLEANFILES = $(SCANOBJ_FILES) $(REPORT_FILES) $(DOC_STAMPS) gtkdoc-check.test
 
-if ENABLE_GTK_DOC
 if GTK_DOC_BUILD_HTML
 HTML_BUILD_STAMP=html-build.stamp
 else
@@ -63,9 +67,11 @@ else
 PDF_BUILD_STAMP=
 endif
 
-all-local: $(HTML_BUILD_STAMP) $(PDF_BUILD_STAMP)
-else
-all-local:
+all-gtk-doc: $(HTML_BUILD_STAMP) $(PDF_BUILD_STAMP)
+.PHONY: all-gtk-doc
+
+if ENABLE_GTK_DOC
+all-local: all-gtk-doc
 endif
 
 docs: $(HTML_BUILD_STAMP) $(PDF_BUILD_STAMP)
@@ -74,31 +80,42 @@ $(REPORT_FILES): sgml-build.stamp
 
 #### setup ####
 
+GTK_DOC_V_SETUP=$(GTK_DOC_V_SETUP_$(V))
+GTK_DOC_V_SETUP_=$(GTK_DOC_V_SETUP_$(AM_DEFAULT_VERBOSITY))
+GTK_DOC_V_SETUP_0=@echo "  DOC   Preparing build";
+
 setup-build.stamp:
-	- at if test "$(abs_srcdir)" != "$(abs_builddir)" ; then \
-	    echo '  DOC   Preparing build'; \
+	-$(GTK_DOC_V_SETUP)if test "$(abs_srcdir)" != "$(abs_builddir)" ; then \
 	    files=`echo $(SETUP_FILES) $(expand_content_files) $(DOC_MODULE).types`; \
 	    if test "x$$files" != "x" ; then \
 	        for file in $$files ; do \
+	            destdir=`dirname $(abs_builddir)/$$file`; \
+	            test -d "$$destdir" || mkdir -p "$$destdir"; \
 	            test -f $(abs_srcdir)/$$file && \
-	                cp -pu $(abs_srcdir)/$$file $(abs_builddir)/ || true; \
+	                cp -pf $(abs_srcdir)/$$file $(abs_builddir)/$$file || true; \
 	        done; \
 	    fi; \
 	fi
-	@touch setup-build.stamp
+	$(AM_V_at)touch setup-build.stamp
 
 
 #### scan ####
 
-scan-build.stamp: $(HFILE_GLOB) $(CFILE_GLOB)
-	@echo '  DOC   Scanning header files'
-	@_source_dir='' ; \
+GTK_DOC_V_SCAN=$(GTK_DOC_V_SCAN_$(V))
+GTK_DOC_V_SCAN_=$(GTK_DOC_V_SCAN_$(AM_DEFAULT_VERBOSITY))
+GTK_DOC_V_SCAN_0=@echo "  DOC   Scanning header files";
+
+GTK_DOC_V_INTROSPECT=$(GTK_DOC_V_INTROSPECT_$(V))
+GTK_DOC_V_INTROSPECT_=$(GTK_DOC_V_INTROSPECT_$(AM_DEFAULT_VERBOSITY))
+GTK_DOC_V_INTROSPECT_0=@echo "  DOC   Introspecting gobjects";
+
+scan-build.stamp: setup-build.stamp $(HFILE_GLOB) $(CFILE_GLOB)
+	$(GTK_DOC_V_SCAN)_source_dir='' ; \
 	for i in $(DOC_SOURCE_DIR) ; do \
 	    _source_dir="$${_source_dir} --source-dir=$$i" ; \
 	done ; \
 	gtkdoc-scan --module=$(DOC_MODULE) --ignore-headers="$(IGNORE_HFILES)" $${_source_dir} $(SCAN_OPTIONS) $(EXTRA_HFILES)
-	@if grep -l '^..*$$' $(DOC_MODULE).types > /dev/null 2>&1 ; then \
-	    echo "  DOC   Introspecting gobjects"; \
+	$(GTK_DOC_V_INTROSPECT)if grep -l '^..*$$' $(DOC_MODULE).types > /dev/null 2>&1 ; then \
 	    scanobj_options=""; \
 	    gtkdoc-scangobj 2>&1 --help | grep  >/dev/null "\-\-verbose"; \
 	    if test "$(?)" = "0"; then \
@@ -113,32 +130,41 @@ scan-build.stamp: $(HFILE_GLOB) $(CFILE_GLOB)
 	        test -f $$i || touch $$i ; \
 	    done \
 	fi
-	@touch scan-build.stamp
+	$(AM_V_at)touch scan-build.stamp
 
 $(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt: scan-build.stamp
 	@true
 
 #### xml ####
 
+GTK_DOC_V_XML=$(GTK_DOC_V_XML_$(V))
+GTK_DOC_V_XML_=$(GTK_DOC_V_XML_$(AM_DEFAULT_VERBOSITY))
+GTK_DOC_V_XML_0=@echo "  DOC   Building XML";
+
 sgml-build.stamp: setup-build.stamp $(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt $(expand_content_files)
-	@echo '  DOC   Building XML'
-	@_source_dir='' ; \
+	$(GTK_DOC_V_XML)_source_dir='' ; \
 	for i in $(DOC_SOURCE_DIR) ; do \
 	    _source_dir="$${_source_dir} --source-dir=$$i" ; \
 	done ; \
 	gtkdoc-mkdb --module=$(DOC_MODULE) --output-format=xml --expand-content-files="$(expand_content_files)" --main-sgml-file=$(DOC_MAIN_SGML_FILE) $${_source_dir} $(MKDB_OPTIONS)
-	@touch sgml-build.stamp
+	$(AM_V_at)touch sgml-build.stamp
 
 sgml.stamp: sgml-build.stamp
 	@true
 
 #### html ####
 
+GTK_DOC_V_HTML=$(GTK_DOC_V_HTML_$(V))
+GTK_DOC_V_HTML_=$(GTK_DOC_V_HTML_$(AM_DEFAULT_VERBOSITY))
+GTK_DOC_V_HTML_0=@echo "  DOC   Building HTML";
+
+GTK_DOC_V_XREF=$(GTK_DOC_V_XREF_$(V))
+GTK_DOC_V_XREF_=$(GTK_DOC_V_XREF_$(AM_DEFAULT_VERBOSITY))
+GTK_DOC_V_XREF_0=@echo "  DOC   Fixing cross-references";
+
 html-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files)
-	@echo '  DOC   Building HTML'
-	@rm -rf html
-	@mkdir html
-	@mkhtml_options=""; \
+	$(GTK_DOC_V_HTML)rm -rf html && mkdir html && \
+	mkhtml_options=""; \
 	gtkdoc-mkhtml 2>&1 --help | grep  >/dev/null "\-\-verbose"; \
 	if test "$(?)" = "0"; then \
 	  if test "x$(V)" = "x1"; then \
@@ -159,16 +185,18 @@ html-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files)
 	    cp $(abs_builddir)/$$file $(abs_builddir)/html; \
 	  fi; \
 	done;
-	@echo '  DOC   Fixing cross-references'
-	@gtkdoc-fixxref --module=$(DOC_MODULE) --module-dir=html --html-dir=$(HTML_DIR) $(FIXXREF_OPTIONS)
-	@touch html-build.stamp
+	$(GTK_DOC_V_XREF)gtkdoc-fixxref --module=$(DOC_MODULE) --module-dir=html --html-dir=$(HTML_DIR) $(FIXXREF_OPTIONS)
+	$(AM_V_at)touch html-build.stamp
 
 #### pdf ####
 
+GTK_DOC_V_PDF=$(GTK_DOC_V_PDF_$(V))
+GTK_DOC_V_PDF_=$(GTK_DOC_V_PDF_$(AM_DEFAULT_VERBOSITY))
+GTK_DOC_V_PDF_0=@echo "  DOC   Building PDF";
+
 pdf-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files)
-	@echo '  DOC   Building PDF'
-	@rm -f $(DOC_MODULE).pdf
-	@mkpdf_options=""; \
+	$(GTK_DOC_V_PDF)rm -f $(DOC_MODULE).pdf && \
+	mkpdf_options=""; \
 	gtkdoc-mkpdf 2>&1 --help | grep  >/dev/null "\-\-verbose"; \
 	if test "$(?)" = "0"; then \
 	  if test "x$(V)" = "x1"; then \
@@ -185,13 +213,16 @@ pdf-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files)
 	  done; \
 	fi; \
 	gtkdoc-mkpdf --path="$(abs_srcdir)" $$mkpdf_options $(DOC_MODULE) $(DOC_MAIN_SGML_FILE) $(MKPDF_OPTIONS)
-	@touch pdf-build.stamp
+	$(AM_V_at)touch pdf-build.stamp
 
 ##############
 
 clean-local:
 	@rm -f *~ *.bak
 	@rm -rf .libs
+	@if echo $(SCAN_OPTIONS) | grep -q "\-\-rebuild-types" ; then \
+	  rm -f $(DOC_MODULE).types; \
+	fi
 
 distclean-local:
 	@rm -rf xml html $(REPORT_FILES) $(DOC_MODULE).pdf \
@@ -200,7 +231,7 @@ distclean-local:
 	    rm -f $(SETUP_FILES) $(expand_content_files) $(DOC_MODULE).types; \
 	fi
 
-maintainer-clean-local: clean
+maintainer-clean-local:
 	@rm -rf xml html
 
 install-data-local:
@@ -236,15 +267,17 @@ uninstall-local:
 #
 # Require gtk-doc when making dist
 #
-if ENABLE_GTK_DOC
-dist-check-gtkdoc:
+if HAVE_GTK_DOC
+dist-check-gtkdoc: docs
 else
 dist-check-gtkdoc:
-	@echo "*** gtk-doc must be installed and enabled in order to make dist"
+	@echo "*** gtk-doc is needed to run 'make dist'.         ***"
+	@echo "*** gtk-doc was not found when 'configure' ran.   ***"
+	@echo "*** please install gtk-doc and rerun 'configure'. ***"
 	@false
 endif
 
-dist-hook: dist-check-gtkdoc dist-hook-local
+dist-hook: dist-check-gtkdoc all-gtk-doc dist-hook-local
 	@mkdir $(distdir)/html
 	@cp ./html/* $(distdir)/html
 	@-cp ./$(DOC_MODULE).pdf $(distdir)/
diff --git a/gui/Makefile.in b/gui/Makefile.in
index 375509a..ad415e6 100644
--- a/gui/Makefile.in
+++ b/gui/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.14.1 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
-# Foundation, Inc.
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -17,23 +16,51 @@
 
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -77,8 +104,9 @@ bin_PROGRAMS = ghkl$(EXEEXT)
 
 @HKL3D_TRUE at am__append_5 = 3d.ui
 subdir = gui
-DIST_COMMON = $(am__dist_pkgdata_DATA_DIST) $(dist_appl_DATA) \
-	$(srcdir)/Makefile.am $(srcdir)/Makefile.in
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+	$(top_srcdir)/config/depcomp $(dist_appl_DATA) \
+	$(am__dist_pkgdata_DATA_DIST)
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/m4/gtk-doc.m4 \
 	$(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
@@ -105,6 +133,19 @@ ghkl_DEPENDENCIES = $(top_builddir)/hkl/libhkl.la $(am__append_3)
 AM_V_lt = $(am__v_lt_ at AM_V@)
 am__v_lt_ = $(am__v_lt_ at AM_DEFAULT_V@)
 am__v_lt_0 = --silent
+am__v_lt_1 = 
+AM_V_P = $(am__v_P_ at AM_V@)
+am__v_P_ = $(am__v_P_ at AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_ at AM_V@)
+am__v_GEN_ = $(am__v_GEN_ at AM_DEFAULT_V@)
+am__v_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
+AM_V_at = $(am__v_at_ at AM_V@)
+am__v_at_ = $(am__v_at_ at AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 DEFAULT_INCLUDES = -I. at am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/config/depcomp
 am__depfiles_maybe = depfiles
@@ -117,17 +158,16 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(AM_CFLAGS) $(CFLAGS)
 AM_V_CC = $(am__v_CC_ at AM_V@)
 am__v_CC_ = $(am__v_CC_ at AM_DEFAULT_V@)
-am__v_CC_0 = @echo "  CC    " $@;
-AM_V_at = $(am__v_at_ at AM_V@)
-am__v_at_ = $(am__v_at_ at AM_DEFAULT_V@)
-am__v_at_0 = @
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
 CCLD = $(CC)
 LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
 	$(AM_LDFLAGS) $(LDFLAGS) -o $@
 AM_V_CCLD = $(am__v_CCLD_ at AM_V@)
 am__v_CCLD_ = $(am__v_CCLD_ at AM_DEFAULT_V@)
-am__v_CCLD_0 = @echo "  CCLD  " $@;
+am__v_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
 CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
 	$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
 LTCXXCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \
@@ -136,17 +176,16 @@ LTCXXCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \
 	$(AM_CXXFLAGS) $(CXXFLAGS)
 AM_V_CXX = $(am__v_CXX_ at AM_V@)
 am__v_CXX_ = $(am__v_CXX_ at AM_DEFAULT_V@)
-am__v_CXX_0 = @echo "  CXX   " $@;
+am__v_CXX_0 = @echo "  CXX     " $@;
+am__v_CXX_1 = 
 CXXLD = $(CXX)
 CXXLINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \
 	$(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \
 	$(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
 AM_V_CXXLD = $(am__v_CXXLD_ at AM_V@)
 am__v_CXXLD_ = $(am__v_CXXLD_ at AM_DEFAULT_V@)
-am__v_CXXLD_0 = @echo "  CXXLD " $@;
-AM_V_GEN = $(am__v_GEN_ at AM_V@)
-am__v_GEN_ = $(am__v_GEN_ at AM_DEFAULT_V@)
-am__v_GEN_0 = @echo "  GEN   " $@;
+am__v_CXXLD_0 = @echo "  CXXLD   " $@;
+am__v_CXXLD_1 = 
 SOURCES = $(ghkl_SOURCES) $(nodist_EXTRA_ghkl_SOURCES)
 DIST_SOURCES = $(am__ghkl_SOURCES_DIST)
 am__can_run_installinfo = \
@@ -183,6 +222,23 @@ am__uninstall_files_from_dir = { \
   }
 am__dist_pkgdata_DATA_DIST = ghkl.ui pseudo.ui 3d.ui
 DATA = $(dist_appl_DATA) $(dist_pkgdata_DATA)
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -237,6 +293,7 @@ GSL_CFLAGS = @GSL_CFLAGS@
 GSL_CONFIG = @GSL_CONFIG@
 GSL_LIBS = @GSL_LIBS@
 GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_CHECK_PATH = @GTKDOC_CHECK_PATH@
 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
 GTKDOC_MKPDF = @GTKDOC_MKPDF@
@@ -411,10 +468,12 @@ install-binPROGRAMS: $(bin_PROGRAMS)
 	fi; \
 	for p in $$list; do echo "$$p $$p"; done | \
 	sed 's/$(EXEEXT)$$//' | \
-	while read p p1; do if test -f $$p || test -f $$p1; \
-	  then echo "$$p"; echo "$$p"; else :; fi; \
+	while read p p1; do if test -f $$p \
+	 || test -f $$p1 \
+	  ; then echo "$$p"; echo "$$p"; else :; fi; \
 	done | \
-	sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \
+	sed -e 'p;s,.*/,,;n;h' \
+	    -e 's|.*|.|' \
 	    -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \
 	sed 'N;N;N;s,\n, ,g' | \
 	$(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \
@@ -435,7 +494,8 @@ uninstall-binPROGRAMS:
 	@list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
 	files=`for p in $$list; do echo "$$p"; done | \
 	  sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \
-	      -e 's/$$/$(EXEEXT)/' `; \
+	      -e 's/$$/$(EXEEXT)/' \
+	`; \
 	test -n "$$list" || exit 0; \
 	echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \
 	cd "$(DESTDIR)$(bindir)" && rm -f $$files
@@ -448,6 +508,7 @@ clean-binPROGRAMS:
 	list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
 	echo " rm -f" $$list; \
 	rm -f $$list
+
 ghkl$(EXEEXT): $(ghkl_OBJECTS) $(ghkl_DEPENDENCIES) $(EXTRA_ghkl_DEPENDENCIES) 
 	@rm -f ghkl$(EXEEXT)
 	$(AM_V_CXXLD)$(CXXLINK) $(ghkl_OBJECTS) $(ghkl_LDADD) $(LIBS)
@@ -560,26 +621,15 @@ uninstall-dist_pkgdataDATA:
 	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
 	dir='$(DESTDIR)$(pkgdatadir)'; $(am__uninstall_files_from_dir)
 
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
-	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	mkid -fID $$unique
-tags: TAGS
-
-TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	set x; \
 	here=`pwd`; \
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -591,15 +641,11 @@ TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 	      $$unique; \
 	  fi; \
 	fi
-ctags: CTAGS
-CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -608,6 +654,21 @@ GTAGS:
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -752,21 +813,21 @@ uninstall-am: uninstall-binPROGRAMS uninstall-dist_applDATA \
 
 .MAKE: install-am install-strip
 
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \
-	clean-generic clean-libtool ctags distclean distclean-compile \
-	distclean-generic distclean-libtool distclean-tags distdir dvi \
-	dvi-am html html-am info info-am install install-am \
-	install-binPROGRAMS install-data install-data-am \
-	install-dist_applDATA install-dist_pkgdataDATA install-dvi \
-	install-dvi-am install-exec install-exec-am install-html \
-	install-html-am install-info install-info-am install-man \
-	install-pdf install-pdf-am install-ps install-ps-am \
-	install-strip installcheck installcheck-am installdirs \
-	maintainer-clean maintainer-clean-generic mostlyclean \
-	mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
-	pdf pdf-am ps ps-am tags uninstall uninstall-am \
-	uninstall-binPROGRAMS uninstall-dist_applDATA \
-	uninstall-dist_pkgdataDATA
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean \
+	clean-binPROGRAMS clean-generic clean-libtool cscopelist-am \
+	ctags ctags-am distclean distclean-compile distclean-generic \
+	distclean-libtool distclean-tags distdir dvi dvi-am html \
+	html-am info info-am install install-am install-binPROGRAMS \
+	install-data install-data-am install-dist_applDATA \
+	install-dist_pkgdataDATA install-dvi install-dvi-am \
+	install-exec install-exec-am install-html install-html-am \
+	install-info install-info-am install-man install-pdf \
+	install-pdf-am install-ps install-ps-am install-strip \
+	installcheck installcheck-am installdirs maintainer-clean \
+	maintainer-clean-generic mostlyclean mostlyclean-compile \
+	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
+	tags tags-am uninstall uninstall-am uninstall-binPROGRAMS \
+	uninstall-dist_applDATA uninstall-dist_pkgdataDATA
 
 
 # Support for GNU Flymake, in Emacs.
diff --git a/gui/hkl-gui-3d-gl.h b/gui/hkl-gui-3d-gl.h
index 19c16fa..d040756 100644
--- a/gui/hkl-gui-3d-gl.h
+++ b/gui/hkl-gui-3d-gl.h
@@ -1,23 +1,23 @@
 /* $Id: gl.h 108 2009-01-08 16:38:36Z mmmaddd $ */
 
 /*
-	G3DViewer - 3D object viewer
+  G3DViewer - 3D object viewer
 
-	Copyright (C) 2005, 2006  Markus Dahms <mad at automagically.de>
+  Copyright (C) 2005, 2006  Markus Dahms <mad at automagically.de>
 
-    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 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.
+  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
+  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
 */
 
 #ifndef _GL_H
diff --git a/gui/hkl-gui-macros.h b/gui/hkl-gui-macros.h
index 3031615..67dd616 100644
--- a/gui/hkl-gui-macros.h
+++ b/gui/hkl-gui-macros.h
@@ -39,7 +39,7 @@
 #define get_model(filename)						\
 	(0 == access(filename, R_OK)) ? filename :			\
 	((0 == access("../data/" filename, R_OK)) ? "../data/" filename : \
-	 ((0 == access(PKGDATA "hkl3d" filename, R_OK)) ? PKGDATA "hkl3d" filename : NULL))
+	 ((0 == access(PKGDATA "/hkl3d/" filename, R_OK)) ? PKGDATA "/hkl3d/" filename : NULL))
 
 static void get_ui(GtkBuilder *builder, const char *filename)
 {
diff --git a/gui/hkl-gui-pseudoaxes.h b/gui/hkl-gui-pseudoaxes.h
index 6d1f7f0..30c01a5 100644
--- a/gui/hkl-gui-pseudoaxes.h
+++ b/gui/hkl-gui-pseudoaxes.h
@@ -82,5 +82,3 @@ void hkl_gui_engine_update (HklGuiEngine* self);
 G_END_DECLS
 
 #endif /* __HKL_GUI_ENGINE_H__ */
-
-
diff --git a/gui/hkl-gui.h b/gui/hkl-gui.h
index dbc7f1d..ae2a816 100644
--- a/gui/hkl-gui.h
+++ b/gui/hkl-gui.h
@@ -50,7 +50,3 @@ struct _HklGuiWindowClass {
 GType hkl_gui_window_get_type (void) G_GNUC_CONST;
 
 HklGuiWindow* hkl_gui_window_new (void);
-
-
-
-
diff --git a/hkl/Makefile.in b/hkl/Makefile.in
index 339ff18..9595d55 100644
--- a/hkl/Makefile.in
+++ b/hkl/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.14.1 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
-# Foundation, Inc.
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -17,23 +16,51 @@
 
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -64,7 +91,8 @@ host_triplet = @host@
 @HAVE_INTROSPECTION_TRUE at am__append_3 = $(GOBJECT_CFLAGS)
 @HAVE_INTROSPECTION_TRUE at am__append_4 = Hkl- at VMAJ@.0.gir
 subdir = hkl
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+	$(top_srcdir)/config/depcomp
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/m4/gtk-doc.m4 \
 	$(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
@@ -112,6 +140,7 @@ libdummy_la_OBJECTS = $(am_libdummy_la_OBJECTS)
 AM_V_lt = $(am__v_lt_ at AM_V@)
 am__v_lt_ = $(am__v_lt_ at AM_DEFAULT_V@)
 am__v_lt_0 = --silent
+am__v_lt_1 = 
 libhkl_la_DEPENDENCIES = ccan/libccan.la
 am__libhkl_la_SOURCES_DIST = hkl-axis.c hkl-detector.c \
 	hkl-detector-factory.c hkl-factory.c hkl-geometry.c \
@@ -171,6 +200,18 @@ libhkl_la_OBJECTS = $(am_libhkl_la_OBJECTS)
 libhkl_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(libhkl_la_CFLAGS) \
 	$(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_P = $(am__v_P_ at AM_V@)
+am__v_P_ = $(am__v_P_ at AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_ at AM_V@)
+am__v_GEN_ = $(am__v_GEN_ at AM_DEFAULT_V@)
+am__v_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
+AM_V_at = $(am__v_at_ at AM_V@)
+am__v_at_ = $(am__v_at_ at AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 DEFAULT_INCLUDES = -I. at am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/config/depcomp
 am__depfiles_maybe = depfiles
@@ -183,29 +224,26 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(AM_CFLAGS) $(CFLAGS)
 AM_V_CC = $(am__v_CC_ at AM_V@)
 am__v_CC_ = $(am__v_CC_ at AM_DEFAULT_V@)
-am__v_CC_0 = @echo "  CC    " $@;
-AM_V_at = $(am__v_at_ at AM_V@)
-am__v_at_ = $(am__v_at_ at AM_DEFAULT_V@)
-am__v_at_0 = @
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
 CCLD = $(CC)
 LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
 	$(AM_LDFLAGS) $(LDFLAGS) -o $@
 AM_V_CCLD = $(am__v_CCLD_ at AM_V@)
 am__v_CCLD_ = $(am__v_CCLD_ at AM_DEFAULT_V@)
-am__v_CCLD_0 = @echo "  CCLD  " $@;
-AM_V_GEN = $(am__v_GEN_ at AM_V@)
-am__v_GEN_ = $(am__v_GEN_ at AM_DEFAULT_V@)
-am__v_GEN_0 = @echo "  GEN   " $@;
+am__v_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
 SOURCES = $(libdummy_la_SOURCES) $(libhkl_la_SOURCES)
 DIST_SOURCES = $(libdummy_la_SOURCES) $(am__libhkl_la_SOURCES_DIST)
-RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
-	html-recursive info-recursive install-data-recursive \
-	install-dvi-recursive install-exec-recursive \
-	install-html-recursive install-info-recursive \
-	install-pdf-recursive install-ps-recursive install-recursive \
-	installcheck-recursive installdirs-recursive pdf-recursive \
-	ps-recursive uninstall-recursive
+RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \
+	ctags-recursive dvi-recursive html-recursive info-recursive \
+	install-data-recursive install-dvi-recursive \
+	install-exec-recursive install-html-recursive \
+	install-info-recursive install-pdf-recursive \
+	install-ps-recursive install-recursive installcheck-recursive \
+	installdirs-recursive pdf-recursive ps-recursive \
+	tags-recursive uninstall-recursive
 am__can_run_installinfo = \
   case $$AM_UPDATE_INFO_DIR in \
     n|no|NO) false;; \
@@ -214,9 +252,29 @@ am__can_run_installinfo = \
 DATA = $(gir_DATA) $(typelibs_DATA)
 RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive	\
   distclean-recursive maintainer-clean-recursive
-AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
-	$(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \
+am__recursive_targets = \
+  $(RECURSIVE_TARGETS) \
+  $(RECURSIVE_CLEAN_TARGETS) \
+  $(am__extra_recursive_targets)
+AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \
 	distdir
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DIST_SUBDIRS = $(SUBDIRS)
@@ -297,6 +355,7 @@ GSL_CFLAGS = @GSL_CFLAGS@
 GSL_CONFIG = @GSL_CONFIG@
 GSL_LIBS = @GSL_LIBS@
 GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_CHECK_PATH = @GTKDOC_CHECK_PATH@
 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
 GTKDOC_MKPDF = @GTKDOC_MKPDF@
@@ -571,6 +630,7 @@ $(top_srcdir)/configure:  $(am__configure_deps)
 $(ACLOCAL_M4):  $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(am__aclocal_m4_deps):
+
 install-libLTLIBRARIES: $(lib_LTLIBRARIES)
 	@$(NORMAL_INSTALL)
 	@list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \
@@ -597,23 +657,29 @@ uninstall-libLTLIBRARIES:
 
 clean-libLTLIBRARIES:
 	-test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES)
-	@list='$(lib_LTLIBRARIES)'; for p in $$list; do \
-	  dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
-	  test "$$dir" != "$$p" || dir=.; \
-	  echo "rm -f \"$${dir}/so_locations\""; \
-	  rm -f "$${dir}/so_locations"; \
-	done
+	@list='$(lib_LTLIBRARIES)'; \
+	locs=`for p in $$list; do echo $$p; done | \
+	      sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
+	      sort -u`; \
+	test -z "$$locs" || { \
+	  echo rm -f $${locs}; \
+	  rm -f $${locs}; \
+	}
 
 clean-noinstLTLIBRARIES:
 	-test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES)
-	@list='$(noinst_LTLIBRARIES)'; for p in $$list; do \
-	  dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
-	  test "$$dir" != "$$p" || dir=.; \
-	  echo "rm -f \"$${dir}/so_locations\""; \
-	  rm -f "$${dir}/so_locations"; \
-	done
+	@list='$(noinst_LTLIBRARIES)'; \
+	locs=`for p in $$list; do echo $$p; done | \
+	      sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
+	      sort -u`; \
+	test -z "$$locs" || { \
+	  echo rm -f $${locs}; \
+	  rm -f $${locs}; \
+	}
+
 libdummy.la: $(libdummy_la_OBJECTS) $(libdummy_la_DEPENDENCIES) $(EXTRA_libdummy_la_DEPENDENCIES) 
 	$(AM_V_CCLD)$(LINK)  $(libdummy_la_OBJECTS) $(libdummy_la_LIBADD) $(LIBS)
+
 libhkl.la: $(libhkl_la_OBJECTS) $(libhkl_la_DEPENDENCIES) $(EXTRA_libhkl_la_DEPENDENCIES) 
 	$(AM_V_CCLD)$(libhkl_la_LINK) -rpath $(libdir) $(libhkl_la_OBJECTS) $(libhkl_la_LIBADD) $(LIBS)
 
@@ -978,22 +1044,25 @@ uninstall-typelibsDATA:
 	dir='$(DESTDIR)$(typelibsdir)'; $(am__uninstall_files_from_dir)
 
 # This directory's subdirectories are mostly independent; you can cd
-# into them and run `make' without going through this Makefile.
-# To change the values of `make' variables: instead of editing Makefiles,
-# (1) if the variable is set in `config.status', edit `config.status'
-#     (which will cause the Makefiles to be regenerated when you run `make');
-# (2) otherwise, pass the desired values on the `make' command line.
-$(RECURSIVE_TARGETS):
-	@fail= failcom='exit 1'; \
-	for f in x $$MAKEFLAGS; do \
-	  case $$f in \
-	    *=* | --[!k]*);; \
-	    *k*) failcom='fail=yes';; \
-	  esac; \
-	done; \
+# into them and run 'make' without going through this Makefile.
+# To change the values of 'make' variables: instead of editing Makefiles,
+# (1) if the variable is set in 'config.status', edit 'config.status'
+#     (which will cause the Makefiles to be regenerated when you run 'make');
+# (2) otherwise, pass the desired values on the 'make' command line.
+$(am__recursive_targets):
+	@fail=; \
+	if $(am__make_keepgoing); then \
+	  failcom='fail=yes'; \
+	else \
+	  failcom='exit 1'; \
+	fi; \
 	dot_seen=no; \
 	target=`echo $@ | sed s/-recursive//`; \
-	list='$(SUBDIRS)'; for subdir in $$list; do \
+	case "$@" in \
+	  distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
+	  *) list='$(SUBDIRS)' ;; \
+	esac; \
+	for subdir in $$list; do \
 	  echo "Making $$target in $$subdir"; \
 	  if test "$$subdir" = "."; then \
 	    dot_seen=yes; \
@@ -1008,57 +1077,12 @@ $(RECURSIVE_TARGETS):
 	  $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
 	fi; test -z "$$fail"
 
-$(RECURSIVE_CLEAN_TARGETS):
-	@fail= failcom='exit 1'; \
-	for f in x $$MAKEFLAGS; do \
-	  case $$f in \
-	    *=* | --[!k]*);; \
-	    *k*) failcom='fail=yes';; \
-	  esac; \
-	done; \
-	dot_seen=no; \
-	case "$@" in \
-	  distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
-	  *) list='$(SUBDIRS)' ;; \
-	esac; \
-	rev=''; for subdir in $$list; do \
-	  if test "$$subdir" = "."; then :; else \
-	    rev="$$subdir $$rev"; \
-	  fi; \
-	done; \
-	rev="$$rev ."; \
-	target=`echo $@ | sed s/-recursive//`; \
-	for subdir in $$rev; do \
-	  echo "Making $$target in $$subdir"; \
-	  if test "$$subdir" = "."; then \
-	    local_target="$$target-am"; \
-	  else \
-	    local_target="$$target"; \
-	  fi; \
-	  ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
-	  || eval $$failcom; \
-	done && test -z "$$fail"
-tags-recursive:
-	list='$(SUBDIRS)'; for subdir in $$list; do \
-	  test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
-	done
-ctags-recursive:
-	list='$(SUBDIRS)'; for subdir in $$list; do \
-	  test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
-	done
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-recursive
+TAGS: tags
 
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
-	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	mkid -fID $$unique
-tags: TAGS
-
-TAGS: tags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	set x; \
 	here=`pwd`; \
 	if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
@@ -1074,12 +1098,7 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 	      set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
 	  fi; \
 	done; \
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -1091,15 +1110,11 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 	      $$unique; \
 	  fi; \
 	fi
-ctags: CTAGS
-CTAGS: ctags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+ctags: ctags-recursive
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -1108,6 +1123,21 @@ GTAGS:
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-recursive
+
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -1278,26 +1308,24 @@ ps-am:
 uninstall-am: uninstall-girDATA uninstall-libLTLIBRARIES \
 	uninstall-typelibsDATA
 
-.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \
-	install-am install-strip tags-recursive
-
-.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
-	all all-am check check-am clean clean-generic \
-	clean-libLTLIBRARIES clean-libtool clean-noinstLTLIBRARIES \
-	ctags ctags-recursive distclean distclean-compile \
-	distclean-generic distclean-libtool distclean-tags distdir dvi \
-	dvi-am html html-am info info-am install install-am \
-	install-data install-data-am install-dvi install-dvi-am \
-	install-exec install-exec-am install-girDATA install-html \
-	install-html-am install-info install-info-am \
-	install-libLTLIBRARIES install-man install-pdf install-pdf-am \
-	install-ps install-ps-am install-strip install-typelibsDATA \
-	installcheck installcheck-am installdirs installdirs-am \
-	maintainer-clean maintainer-clean-generic mostlyclean \
-	mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
-	pdf pdf-am ps ps-am tags tags-recursive uninstall uninstall-am \
-	uninstall-girDATA uninstall-libLTLIBRARIES \
-	uninstall-typelibsDATA
+.MAKE: $(am__recursive_targets) install-am install-strip
+
+.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \
+	check-am clean clean-generic clean-libLTLIBRARIES \
+	clean-libtool clean-noinstLTLIBRARIES cscopelist-am ctags \
+	ctags-am distclean distclean-compile distclean-generic \
+	distclean-libtool distclean-tags distdir dvi dvi-am html \
+	html-am info info-am install install-am install-data \
+	install-data-am install-dvi install-dvi-am install-exec \
+	install-exec-am install-girDATA install-html install-html-am \
+	install-info install-info-am install-libLTLIBRARIES \
+	install-man install-pdf install-pdf-am install-ps \
+	install-ps-am install-strip install-typelibsDATA installcheck \
+	installcheck-am installdirs installdirs-am maintainer-clean \
+	maintainer-clean-generic mostlyclean mostlyclean-compile \
+	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
+	tags tags-am uninstall uninstall-am uninstall-girDATA \
+	uninstall-libLTLIBRARIES uninstall-typelibsDATA
 
 	-fvisibility=hidden
 
diff --git a/hkl/ccan/Makefile.in b/hkl/ccan/Makefile.in
index 4d828f6..f4fb219 100644
--- a/hkl/ccan/Makefile.in
+++ b/hkl/ccan/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.14.1 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
-# Foundation, Inc.
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -17,23 +16,51 @@
 
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -53,8 +80,8 @@ POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
 subdir = hkl/ccan
-DIST_COMMON = $(nobase_ccaninclude_HEADERS) $(srcdir)/Makefile.am \
-	$(srcdir)/Makefile.in
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+	$(top_srcdir)/config/depcomp $(nobase_ccaninclude_HEADERS)
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/m4/gtk-doc.m4 \
 	$(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
@@ -75,6 +102,19 @@ libccan_la_OBJECTS = $(am_libccan_la_OBJECTS)
 AM_V_lt = $(am__v_lt_ at AM_V@)
 am__v_lt_ = $(am__v_lt_ at AM_DEFAULT_V@)
 am__v_lt_0 = --silent
+am__v_lt_1 = 
+AM_V_P = $(am__v_P_ at AM_V@)
+am__v_P_ = $(am__v_P_ at AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_ at AM_V@)
+am__v_GEN_ = $(am__v_GEN_ at AM_DEFAULT_V@)
+am__v_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
+AM_V_at = $(am__v_at_ at AM_V@)
+am__v_at_ = $(am__v_at_ at AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 DEFAULT_INCLUDES = -I. at am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/config/depcomp
 am__depfiles_maybe = depfiles
@@ -87,20 +127,16 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(AM_CFLAGS) $(CFLAGS)
 AM_V_CC = $(am__v_CC_ at AM_V@)
 am__v_CC_ = $(am__v_CC_ at AM_DEFAULT_V@)
-am__v_CC_0 = @echo "  CC    " $@;
-AM_V_at = $(am__v_at_ at AM_V@)
-am__v_at_ = $(am__v_at_ at AM_DEFAULT_V@)
-am__v_at_0 = @
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
 CCLD = $(CC)
 LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
 	$(AM_LDFLAGS) $(LDFLAGS) -o $@
 AM_V_CCLD = $(am__v_CCLD_ at AM_V@)
 am__v_CCLD_ = $(am__v_CCLD_ at AM_DEFAULT_V@)
-am__v_CCLD_0 = @echo "  CCLD  " $@;
-AM_V_GEN = $(am__v_GEN_ at AM_V@)
-am__v_GEN_ = $(am__v_GEN_ at AM_DEFAULT_V@)
-am__v_GEN_0 = @echo "  GEN   " $@;
+am__v_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
 SOURCES = $(libccan_la_SOURCES)
 DIST_SOURCES = $(libccan_la_SOURCES)
 am__can_run_installinfo = \
@@ -137,6 +173,23 @@ am__uninstall_files_from_dir = { \
   }
 am__installdirs = "$(DESTDIR)$(ccanincludedir)"
 HEADERS = $(nobase_ccaninclude_HEADERS)
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -191,6 +244,7 @@ GSL_CFLAGS = @GSL_CFLAGS@
 GSL_CONFIG = @GSL_CONFIG@
 GSL_LIBS = @GSL_LIBS@
 GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_CHECK_PATH = @GTKDOC_CHECK_PATH@
 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
 GTKDOC_MKPDF = @GTKDOC_MKPDF@
@@ -371,12 +425,14 @@ $(am__aclocal_m4_deps):
 
 clean-noinstLTLIBRARIES:
 	-test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES)
-	@list='$(noinst_LTLIBRARIES)'; for p in $$list; do \
-	  dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
-	  test "$$dir" != "$$p" || dir=.; \
-	  echo "rm -f \"$${dir}/so_locations\""; \
-	  rm -f "$${dir}/so_locations"; \
-	done
+	@list='$(noinst_LTLIBRARIES)'; \
+	locs=`for p in $$list; do echo $$p; done | \
+	      sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
+	      sort -u`; \
+	test -z "$$locs" || { \
+	  echo rm -f $${locs}; \
+	  rm -f $${locs}; \
+	}
 str/$(am__dirstamp):
 	@$(MKDIR_P) str
 	@: > str/$(am__dirstamp)
@@ -415,23 +471,22 @@ list/$(DEPDIR)/$(am__dirstamp):
 	@$(MKDIR_P) list/$(DEPDIR)
 	@: > list/$(DEPDIR)/$(am__dirstamp)
 list/list.lo: list/$(am__dirstamp) list/$(DEPDIR)/$(am__dirstamp)
+
 libccan.la: $(libccan_la_OBJECTS) $(libccan_la_DEPENDENCIES) $(EXTRA_libccan_la_DEPENDENCIES) 
 	$(AM_V_CCLD)$(LINK)  $(libccan_la_OBJECTS) $(libccan_la_LIBADD) $(LIBS)
 
 mostlyclean-compile:
 	-rm -f *.$(OBJEXT)
-	-rm -f autodata/autodata.$(OBJEXT)
-	-rm -f autodata/autodata.lo
-	-rm -f list/list.$(OBJEXT)
-	-rm -f list/list.lo
-	-rm -f noerr/noerr.$(OBJEXT)
-	-rm -f noerr/noerr.lo
-	-rm -f ptr_valid/ptr_valid.$(OBJEXT)
-	-rm -f ptr_valid/ptr_valid.lo
-	-rm -f str/debug.$(OBJEXT)
-	-rm -f str/debug.lo
-	-rm -f str/str.$(OBJEXT)
-	-rm -f str/str.lo
+	-rm -f autodata/*.$(OBJEXT)
+	-rm -f autodata/*.lo
+	-rm -f list/*.$(OBJEXT)
+	-rm -f list/*.lo
+	-rm -f noerr/*.$(OBJEXT)
+	-rm -f noerr/*.lo
+	-rm -f ptr_valid/*.$(OBJEXT)
+	-rm -f ptr_valid/*.lo
+	-rm -f str/*.$(OBJEXT)
+	-rm -f str/*.lo
 
 distclean-compile:
 	-rm -f *.tab.c
@@ -502,26 +557,15 @@ uninstall-nobase_ccanincludeHEADERS:
 	$(am__nobase_strip_setup); files=`$(am__nobase_strip)`; \
 	dir='$(DESTDIR)$(ccanincludedir)'; $(am__uninstall_files_from_dir)
 
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
-	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	mkid -fID $$unique
-tags: TAGS
-
-TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	set x; \
 	here=`pwd`; \
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -533,15 +577,11 @@ TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 	      $$unique; \
 	  fi; \
 	fi
-ctags: CTAGS
-CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -550,6 +590,21 @@ GTAGS:
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -704,19 +759,19 @@ uninstall-am: uninstall-nobase_ccanincludeHEADERS
 
 .MAKE: install-am install-strip
 
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
-	clean-libtool clean-noinstLTLIBRARIES ctags distclean \
-	distclean-compile distclean-generic distclean-libtool \
-	distclean-tags distdir dvi dvi-am html html-am info info-am \
-	install install-am install-data install-data-am install-dvi \
-	install-dvi-am install-exec install-exec-am install-html \
-	install-html-am install-info install-info-am install-man \
-	install-nobase_ccanincludeHEADERS install-pdf install-pdf-am \
-	install-ps install-ps-am install-strip installcheck \
-	installcheck-am installdirs maintainer-clean \
-	maintainer-clean-generic mostlyclean mostlyclean-compile \
-	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
-	tags uninstall uninstall-am \
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+	clean-libtool clean-noinstLTLIBRARIES cscopelist-am ctags \
+	ctags-am distclean distclean-compile distclean-generic \
+	distclean-libtool distclean-tags distdir dvi dvi-am html \
+	html-am info info-am install install-am install-data \
+	install-data-am install-dvi install-dvi-am install-exec \
+	install-exec-am install-html install-html-am install-info \
+	install-info-am install-man install-nobase_ccanincludeHEADERS \
+	install-pdf install-pdf-am install-ps install-ps-am \
+	install-strip installcheck installcheck-am installdirs \
+	maintainer-clean maintainer-clean-generic mostlyclean \
+	mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
+	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-nobase_ccanincludeHEADERS
 
 
diff --git a/hkl/hkl-engine-e4c.c b/hkl/hkl-engine-e4c.c
index f602516..3ea98a2 100644
--- a/hkl/hkl-engine-e4c.c
+++ b/hkl/hkl-engine-e4c.c
@@ -186,13 +186,15 @@ static HklEngine *hkl_engine_e4c_psi_new(HklEngineList *engines)
 	return self;
 }
 
-/******************/
-/* mode incidence */
-/******************/
+/*****************/
+/* mode readonly */
+/*****************/
 
-static const char *e4c_incidence_axes[] = {OMEGA, CHI, PHI};
+REGISTER_READONLY_INCIDENCE(hkl_engine_e4c_incidence_new,
+			    P99_PROTECT({OMEGA, CHI, PHI}));
 
-REGISTER_INCIDENCE_ENGINE(e4c);
+REGISTER_READONLY_EMERGENCE(hkl_engine_e4c_emergence_new,
+			    P99_PROTECT({OMEGA, CHI, PHI, TTH}));
 
 /********/
 /* E4CV */
@@ -333,10 +335,9 @@ static HklEngineList *hkl_engine_list_new_eulerian4C_horizontal(const HklFactory
 	hkl_engine_e4c_psi_new(self);
 	hkl_engine_q_new(self);
 	hkl_engine_e4c_incidence_new(self);
+	hkl_engine_e4c_emergence_new(self);
 
 	return self;
 }
 
 REGISTER_DIFFRACTOMETER(eulerian4C_horizontal, "E4CH", HKL_GEOMETRY_TYPE_EULERIAN4C_HORIZONTAL_DESCRIPTION);
-
-
diff --git a/hkl/hkl-engine-e6c.c b/hkl/hkl-engine-e6c.c
index 0977e3a..eb5b7b6 100644
--- a/hkl/hkl-engine-e6c.c
+++ b/hkl/hkl-engine-e6c.c
@@ -324,13 +324,15 @@ static HklEngine *hkl_engine_e6c_psi_new(HklEngineList *engines)
 	return self;
 }
 
-/******************/
-/* mode incidence */
-/******************/
+/*****************/
+/* mode readonly */
+/*****************/
 
-static const char *e6c_incidence_axes[] = {MU, OMEGA, CHI, PHI};
+REGISTER_READONLY_INCIDENCE(hkl_engine_e6c_incidence_new,
+			    P99_PROTECT({MU, OMEGA, CHI, PHI}));
 
-REGISTER_INCIDENCE_ENGINE(e6c);
+REGISTER_READONLY_EMERGENCE(hkl_engine_e6c_emergence_new,
+			    P99_PROTECT({MU, OMEGA, CHI, PHI, GAMMA, DELTA}));
 
 /*******/
 /* E6C */
@@ -380,6 +382,7 @@ static HklEngineList *hkl_engine_list_new_eulerian6C(const HklFactory *factory)
 	hkl_engine_qper_qpar_new(self);
 	hkl_engine_tth2_new(self);
 	hkl_engine_e6c_incidence_new(self);
+	hkl_engine_e6c_emergence_new(self);
 
 	return self;
 }
diff --git a/hkl/hkl-engine-k4c.c b/hkl/hkl-engine-k4c.c
index dca3440..3e47533 100644
--- a/hkl/hkl-engine-k4c.c
+++ b/hkl/hkl-engine-k4c.c
@@ -385,13 +385,15 @@ static HklEngine *hkl_engine_k4cv_psi_new(HklEngineList *engines)
 	return self;
 }
 
-/******************/
-/* mode incidence */
-/******************/
+/*****************/
+/* mode readonly */
+/*****************/
 
-static const char *kappa4C_vertical_incidence_axes[] = {KOMEGA, KAPPA, KPHI};
+REGISTER_READONLY_INCIDENCE(hkl_engine_kappa4C_vertical_incidence_new,
+			    P99_PROTECT({KOMEGA, KAPPA, KPHI}));
 
-REGISTER_INCIDENCE_ENGINE(kappa4C_vertical);
+REGISTER_READONLY_EMERGENCE(hkl_engine_kappa4C_vertical_emergence_new,
+			    P99_PROTECT({KOMEGA, KAPPA, KPHI, TTH}));
 
 /********/
 /* K4CV */
@@ -441,9 +443,9 @@ static HklEngineList *hkl_engine_list_new_kappa4C_vertical(const HklFactory *fac
 	hkl_engine_k4cv_psi_new(self);
 	hkl_engine_q_new(self);
 	hkl_engine_kappa4C_vertical_incidence_new(self);
+	hkl_engine_kappa4C_vertical_emergence_new(self);
 
 	return self;
 }
 
 REGISTER_DIFFRACTOMETER(kappa4C_vertical, "K4CV", HKL_GEOMETRY_KAPPA4C_VERTICAL_DESCRIPTION);
-
diff --git a/hkl/hkl-engine-k6c.c b/hkl/hkl-engine-k6c.c
index a02fa40..d57b6fe 100644
--- a/hkl/hkl-engine-k6c.c
+++ b/hkl/hkl-engine-k6c.c
@@ -647,13 +647,15 @@ static HklEngine *hkl_engine_k6c_psi_new(HklEngineList *engines)
 	return self;
 }
 
-/******************/
-/* incidence mode */
-/******************/
+/*****************/
+/* mode readonly */
+/*****************/
 
-static const char *k6c_incidence_axes[] = {MU, KOMEGA, KAPPA, KPHI};
+REGISTER_READONLY_INCIDENCE(hkl_engine_k6c_incidence_new,
+			    P99_PROTECT({MU, KOMEGA, KAPPA, KPHI}));
 
-REGISTER_INCIDENCE_ENGINE(k6c);
+REGISTER_READONLY_EMERGENCE(hkl_engine_k6c_emergence_new,
+			    P99_PROTECT({MU, KOMEGA, KAPPA, KPHI, GAMMA, DELTA}));
 
 #define HKL_GEOMETRY_KAPPA6C_DESCRIPTION				\
 	"For this geometry there is a special parameters called :math:`\\alpha` which is the\n" \
@@ -705,6 +707,7 @@ static HklEngineList *hkl_engine_list_new_kappa6C(const HklFactory *factory)
 	hkl_engine_qper_qpar_new(self);
 	hkl_engine_k6c_incidence_new(self);
 	hkl_engine_tth2_new(self);
+	hkl_engine_k6c_emergence_new(self);
 
 	return self;
 }
@@ -1027,6 +1030,7 @@ static HklEngineList *hkl_engine_list_new_soleil_sirius_kappa(const HklFactory *
 	hkl_engine_qper_qpar_new(self);
 	hkl_engine_tth2_new(self);
 	hkl_engine_k6c_incidence_new(self);
+	hkl_engine_k6c_emergence_new(self);
 
 	return self;
 }
diff --git a/hkl/hkl-engine-soleil-sirius-turret.c b/hkl/hkl-engine-soleil-sirius-turret.c
index aea7bac..164e548 100644
--- a/hkl/hkl-engine-soleil-sirius-turret.c
+++ b/hkl/hkl-engine-soleil-sirius-turret.c
@@ -63,13 +63,15 @@ static HklEngine *hkl_engine_soleil_sirius_turret_hkl_new(HklEngineList *engines
 	return self;
 }
 
-/******************/
-/* mode incidence */
-/******************/
+/*****************/
+/* mode readonly */
+/*****************/
 
-static const char *soleil_sirius_turret_incidence_axes[] = {THETAH, ALPHAY, ALPHAX};
+REGISTER_READONLY_INCIDENCE(hkl_engine_soleil_sirius_turret_incidence_new,
+			    P99_PROTECT({THETAH, ALPHAY, ALPHAX}));
 
-REGISTER_INCIDENCE_ENGINE(soleil_sirius_turret);
+REGISTER_READONLY_EMERGENCE(hkl_engine_soleil_sirius_turret_emergence_new,
+			    P99_PROTECT({THETAH, ALPHAY, ALPHAX, DELTA, GAMMA}));
 
 /************************/
 /* SOLEIL SIRIUS TURRET */
@@ -116,6 +118,7 @@ static HklEngineList *hkl_engine_list_new_soleil_sirius_turret(const HklFactory
 	hkl_engine_qper_qpar_new(self);
 	hkl_engine_tth2_new(self);
 	hkl_engine_soleil_sirius_turret_incidence_new(self);
+	hkl_engine_soleil_sirius_turret_emergence_new(self);
 
 	return self;
 }
diff --git a/hkl/hkl-engine-soleil-sixs-med.c b/hkl/hkl-engine-soleil-sixs-med.c
index 3071cbc..58202e2 100644
--- a/hkl/hkl-engine-soleil-sixs-med.c
+++ b/hkl/hkl-engine-soleil-sixs-med.c
@@ -105,9 +105,8 @@ static HklEngine *hkl_engine_soleil_sixs_med_2_2_hkl_new(HklEngineList *engines)
 
 /* mode incidence */
 
-static const char *soleil_sixs_med_2_2_incidence_axes[] = {BETA, MU, OMEGA};
-
-REGISTER_INCIDENCE_ENGINE(soleil_sixs_med_2_2);
+REGISTER_READONLY_INCIDENCE(hkl_engine_soleil_sixs_med_2_2_incidence_new,
+			    P99_PROTECT({BETA, MU, OMEGA}));
 
 /*********************/
 /* MED 1+2 HklEngine */
@@ -143,9 +142,8 @@ static HklEngine *hkl_engine_soleil_sixs_med_1_2_hkl_new(HklEngineList *engines)
 
 /* mode incidence */
 
-static const char *soleil_sixs_med_1_2_incidence_axes[] = {PITCH, MU};
-
-REGISTER_INCIDENCE_ENGINE(soleil_sixs_med_1_2);
+REGISTER_READONLY_INCIDENCE(hkl_engine_soleil_sixs_med_1_2_incidence_new,
+			    P99_PROTECT({PITCH, MU}));
 
 /*********************/
 /* MED 2+3 HklEngine */
diff --git a/hkl/hkl-engine-template.c b/hkl/hkl-engine-template.c
index 0b36272..64b5ad2 100644
--- a/hkl/hkl-engine-template.c
+++ b/hkl/hkl-engine-template.c
@@ -171,13 +171,15 @@ static HklMode* psi_vertical()
 	return hkl_mode_psi_new(&info);
 }
 
-/******************/
-/* mode incidence */
-/******************/
+/*****************/
+/* mode readonly */
+/*****************/
 
-static const char *template_incidence_axes[] = {MU, OMEGA, CHI, PHI};
+REGISTER_READONLY_INCIDENCE(hkl_engine_template_incidence_new,
+			    P99_PROTECT({MU, OMEGA, CHI, PHI}));
 
-REGISTER_INCIDENCE_ENGINE(template);
+REGISTER_READONLY_EMERGENCE(hkl_engine_template_emergence_new,
+			    P99_PROTECT({MU, OMEGA, CHI, PHI, GAMMA, DELTA}));
 
 /***********/
 /* Engines */
@@ -227,10 +229,10 @@ static HklEngineList *hkl_engine_list_new_eulerian6C(const HklFactory *factory)
 	hkl_engine_qper_qpar_new(self);
 	hkl_engine_tth2_new(self);
 	hkl_engine_template_incidence_new(self);
+	hkl_engine_template_emergence_new(self);
 
 	return self;
 }
 
 /* Register the diffractometer into the factory */
 REGISTER_DIFFRACTOMETER(eulerian6C, "E6C", HKL_GEOMETRY_EULERIAN6C_DESCRIPTION);
-
diff --git a/hkl/hkl-engine-zaxis.c b/hkl/hkl-engine-zaxis.c
index c40b361..2b7c6bb 100644
--- a/hkl/hkl-engine-zaxis.c
+++ b/hkl/hkl-engine-zaxis.c
@@ -100,13 +100,15 @@ static HklEngine *hkl_engine_zaxis_hkl_new(HklEngineList *engines)
 	return self;
 }
 
-/******************/
-/* mode incidence */
-/******************/
+/*****************/
+/* mode readonly */
+/*****************/
 
-static const char *zaxis_incidence_axes[] = {MU, OMEGA};
+REGISTER_READONLY_INCIDENCE(hkl_engine_zaxis_incidence_new,
+			    P99_PROTECT({MU, OMEGA}));
 
-REGISTER_INCIDENCE_ENGINE(zaxis);
+REGISTER_READONLY_EMERGENCE(hkl_engine_zaxis_emergence_new,
+			    P99_PROTECT({MU, OMEGA, DELTA, GAMMA}));
 
 /*********/
 /* ZAXIS */
@@ -155,6 +157,7 @@ static HklEngineList *hkl_engine_list_new_zaxis(const HklFactory *factory)
 	hkl_engine_qper_qpar_new(self);
 	hkl_engine_tth2_new(self);
 	hkl_engine_zaxis_incidence_new(self);
+	hkl_engine_zaxis_emergence_new(self);
 
 	return self;
 }
diff --git a/hkl/hkl-geometry-private.h b/hkl/hkl-geometry-private.h
index d78da0b..89f23c2 100644
--- a/hkl/hkl-geometry-private.h
+++ b/hkl/hkl-geometry-private.h
@@ -35,6 +35,7 @@
 G_BEGIN_DECLS
 
 typedef struct _HklHolder HklHolder;
+
 typedef void (* HklGeometryListMultiplyFunction) (HklGeometryList *self,
 						  HklGeometryListItem *item);
 
diff --git a/hkl/hkl-interval.c b/hkl/hkl-interval.c
index 5435262..fb79304 100644
--- a/hkl/hkl-interval.c
+++ b/hkl/hkl-interval.c
@@ -145,7 +145,7 @@ void hkl_interval_times_interval(HklInterval *self, const HklInterval *interval)
 
 	min = m1;
 	if (m2 < min)
- 		min = m2;
+		min = m2;
 	if (m3 < min)
 		min = m3;
 	if (m4 < min)
diff --git a/hkl/hkl-lattice.c b/hkl/hkl-lattice.c
index 3815782..367d92d 100644
--- a/hkl/hkl-lattice.c
+++ b/hkl/hkl-lattice.c
@@ -120,7 +120,7 @@ HklLattice *hkl_lattice_new(double a, double b, double c,
 					&hkl_unit_angle_rad,
 					&hkl_unit_angle_deg);
 	self->beta = hkl_parameter_new("beta",
-					"The angle between the first and third lattice vector",
+				       "The angle between the first and third lattice vector",
 				       -M_PI, beta, M_PI,
 				       TRUE, TRUE,
 				       &hkl_unit_angle_rad,
@@ -346,7 +346,7 @@ const HklParameter *hkl_lattice_gamma_get(const HklLattice *self)
  * Returns: TRUE on success, FALSE if an error occurred
  **/
 int hkl_lattice_gamma_set(HklLattice *self, const HklParameter *parameter,
-			   GError **error)
+			  GError **error)
 {
 	HKL_LATTICE_X_SET(gamma, parameter, error);
 }
diff --git a/hkl/hkl-pseudoaxis-auto.c b/hkl/hkl-pseudoaxis-auto.c
index d928e44..b5043c7 100644
--- a/hkl/hkl-pseudoaxis-auto.c
+++ b/hkl/hkl-pseudoaxis-auto.c
@@ -148,13 +148,13 @@ static int find_first_geometry(HklEngine *self,
 	gsl_multiroot_fsolver_set (s, f, x);
 
 #ifdef DEBUG
-			fprintf(stdout, "Initial starting point: \n");
-			fprintf(stdout, "x: ");
-			for(i=0; i<len; ++i)
-				fprintf(stdout, " %.7f", s->x->data[i]);
-			fprintf(stdout, "\nf: ");
-			for(i=0; i<len; ++i)
-				fprintf(stdout, " %.7f", s->f->data[i]);
+	fprintf(stdout, "Initial starting point: \n");
+	fprintf(stdout, "x: ");
+	for(i=0; i<len; ++i)
+		fprintf(stdout, " %.7f", s->x->data[i]);
+	fprintf(stdout, "\nf: ");
+	for(i=0; i<len; ++i)
+		fprintf(stdout, " %.7f", s->f->data[i]);
 #endif
 
 	/* iterate to find the solution */
@@ -182,10 +182,10 @@ static int find_first_geometry(HklEngine *self,
 		}
 		status = gsl_multiroot_test_residual (s->f, HKL_EPSILON / 10.);
 #ifdef DEBUG
-	fprintf(stdout, "\nstatus : %d iter : %d", status, iter);
-	for(i=0; i<len; ++i)
-		fprintf(stdout, " %.7f", s->f->data[i]);
-	fprintf(stdout, "\n");
+		fprintf(stdout, "\nstatus : %d iter : %d", status, iter);
+		for(i=0; i<len; ++i)
+			fprintf(stdout, " %.7f", s->f->data[i]);
+		fprintf(stdout, "\n");
 #endif
 
 	} while (status == GSL_CONTINUE && iter < 2000);
diff --git a/hkl/hkl-pseudoaxis-common-eulerians.c b/hkl/hkl-pseudoaxis-common-eulerians.c
index 54daf6c..2f8d322 100644
--- a/hkl/hkl-pseudoaxis-common-eulerians.c
+++ b/hkl/hkl-pseudoaxis-common-eulerians.c
@@ -204,7 +204,7 @@ static HklMode *mode_eulerians()
 		.get = hkl_mode_get_eulerians_real,
 		.set = hkl_mode_set_eulerians_real,
 	};
- 
+
 	HklModeEulerians *self = HKL_MALLOC(HklModeEulerians);
 
 	/* the base constructor; */
diff --git a/hkl/hkl-pseudoaxis-common-hkl.c b/hkl/hkl-pseudoaxis-common-hkl.c
index 9682b81..462f95d 100644
--- a/hkl/hkl-pseudoaxis-common-hkl.c
+++ b/hkl/hkl-pseudoaxis-common-hkl.c
@@ -76,7 +76,7 @@ static int fit_detector_function(const gsl_vector *x, void *params, gsl_vector *
 	/* update the workspace from x; */
 	for(i=0; i<fitp->len; ++i)
 		hkl_parameter_value_set(fitp->axes[i],
-					x->data[i], 
+					x->data[i],
 					HKL_UNIT_DEFAULT, NULL);
 
 	hkl_geometry_update(fitp->geometry);
diff --git a/hkl/hkl-pseudoaxis-common-readonly-private.h b/hkl/hkl-pseudoaxis-common-readonly-private.h
index 4adaef8..da59879 100644
--- a/hkl/hkl-pseudoaxis-common-readonly-private.h
+++ b/hkl/hkl-pseudoaxis-common-readonly-private.h
@@ -44,6 +44,15 @@ static inline double _incidence(const HklVector *v1, const HklVector *v2)
 	return hkl_vector_angle(v1, v2) - M_PI_2;
 }
 
+static inline double _emergence(const HklVector *v1, const HklVector *v2)
+{
+	return M_PI_2 - hkl_vector_angle(v1, v2);
+}
+
+extern HklMode *hkl_mode_emergence_new(const HklModeInfo *info);
+
+extern HklEngine *hkl_engine_emergence_new(HklEngineList *engines);
+
 /* mode parameters */
 
 #define SURFACE_PARAMETERS(_x, _y, _z)					\
@@ -67,22 +76,29 @@ static const HklParameter surface_parameters[] = {
 	SURFACE_PARAMETERS(0, 1, 0),
 };
 
-#define HKL_MODE_INFO_INCIDENCE_DEFAULTS(_name, _axes)			\
-	HKL_MODE_INFO_RO_WITH_PARAMS((_name), (_axes), surface_parameters)
+#define P99_PROTECT(...) __VA_ARGS__
 
-#define REGISTER_INCIDENCE_ENGINE(_name)				\
-	static HklEngine *hkl_engine_## _name ## _incidence_new(HklEngineList *engines) \
+#define HKL_MODE_INFO_incidence_DEFAULTS(_axes)				\
+	HKL_MODE_INFO_RO_WITH_PARAMS("incidence", (_axes), surface_parameters)
+
+#define HKL_MODE_INFO_emergence_DEFAULTS(_axes)				\
+	HKL_MODE_INFO_RO_WITH_PARAMS("emergence", (_axes), surface_parameters)
+
+#define REGISTER_READONLY(_engine, _func, _axes)			\
+	static HklEngine* _func(HklEngineList *engines)			\
 	{								\
-		HklEngine *self;					\
-		HklMode *default_mode;					\
+		HklEngine *self = hkl_engine_ ## _engine ## _new(engines); \
+		static const char *axes[] = _axes;			\
 		static const HklModeInfo info = {			\
-			HKL_MODE_INFO_INCIDENCE_DEFAULTS("incidence",	\
-							 _name ## _incidence_axes), \
+			HKL_MODE_INFO_ ## _engine ## _DEFAULTS(axes),	\
 		};							\
-		self = hkl_engine_incidence_new(engines);		\
-		default_mode = hkl_mode_incidence_new(&info);		\
+		HklMode *default_mode = hkl_mode_ ## _engine ## _new(&info); \
 		hkl_engine_add_mode(self, default_mode);		\
 		hkl_engine_mode_set(self, default_mode);		\
 		return self;						\
 	}
+
+#define REGISTER_READONLY_INCIDENCE(_func, _axes) REGISTER_READONLY(incidence, _func, P99_PROTECT(_axes))
+#define REGISTER_READONLY_EMERGENCE(_func, _axes) REGISTER_READONLY(emergence, _func, P99_PROTECT(_axes))
+
 #endif
diff --git a/hkl/hkl-pseudoaxis-common-readonly.c b/hkl/hkl-pseudoaxis-common-readonly.c
index e066704..b12c828 100644
--- a/hkl/hkl-pseudoaxis-common-readonly.c
+++ b/hkl/hkl-pseudoaxis-common-readonly.c
@@ -22,6 +22,8 @@
 #include "hkl-pseudoaxis-common-readonly-private.h"
 #include "hkl-pseudoaxis-private.h"
 
+/* incidence */
+
 typedef struct _HklEngineIncidence HklEngineIncidence;
 
 struct _HklEngineIncidence
@@ -31,10 +33,6 @@ struct _HklEngineIncidence
 	HklParameter *azimuth;
 };
 
-/********/
-/* mode */
-/********/
-
 #define HKL_MODE_INCIDENCE_ERROR hkl_mode_incidence_error_quark ()
 
 static GQuark hkl_mode_incidence_error_quark (void)
@@ -138,10 +136,6 @@ HklMode *hkl_mode_incidence_new(const HklModeInfo *info)
 	return &self->parent;
 }
 
-/*************/
-/* HklEngine */
-/*************/
-
 HklEngine *hkl_engine_incidence_new(HklEngineList *engines)
 {
 	HklEngineIncidence *self;
@@ -172,3 +166,137 @@ HklEngine *hkl_engine_incidence_new(HklEngineList *engines)
 
 	return &self->engine;
 }
+
+/* emergence */
+
+typedef struct _HklEngineEmergence HklEngineEmergence;
+
+struct _HklEngineEmergence
+{
+	HklEngine engine;
+	HklParameter *emergence;
+	HklParameter *azimuth;
+};
+
+#define HKL_MODE_EMERGENCE_ERROR hkl_mode_emergence_error_quark ()
+
+static GQuark hkl_mode_emergence_error_quark (void)
+{
+	return g_quark_from_static_string ("hkl-mode-emergence-error-quark");
+}
+
+typedef enum {
+	HKL_MODE_EMERGENCE_ERROR_GET, /* can not get the engine */
+	HKL_MODE_EMERGENCE_ERROR_SET, /* can not set the engine */
+} HklModeEmergenceError;
+
+static int hkl_mode_emergence_get_real(HklMode *base,
+				       HklEngine *engine_base,
+				       HklGeometry *geometry,
+				       HklDetector *detector,
+				       HklSample *sample,
+				       GError **error)
+{
+	HklVector kf;
+	double emergence;
+	double azimuth;
+	static const HklVector X = {
+		.data = {1, 0, 0},
+	};
+	static const HklVector Y = {
+		.data = {0, 1, 0},
+	};
+
+	if (!base || !engine_base || !engine_base->mode || !geometry || !detector || !sample){
+		g_set_error(error,
+			    HKL_MODE_EMERGENCE_ERROR,
+			    HKL_MODE_EMERGENCE_ERROR_GET,
+			    "internal error");
+		return FALSE;
+	}
+	HklEngineEmergence *engine = container_of(engine_base, HklEngineEmergence, engine);
+	const HklModeIncidence *mode = container_of(base, HklModeIncidence, parent);
+	HklVector n = {
+		.data = {
+			mode->n_x->_value,
+			mode->n_y->_value,
+			mode->n_z->_value,
+		}
+	};
+
+	/* first check the parameters */
+	if (hkl_vector_is_null(&n)){
+		g_set_error(error,
+			    HKL_MODE_EMERGENCE_ERROR,
+			    HKL_MODE_EMERGENCE_ERROR_GET,
+			    "Can not compute the emergence when the surface vector is null.");
+		return FALSE;
+	}
+
+	/* compute the orientation of the surface */
+	hkl_vector_rotated_quaternion(&n, &darray_item(geometry->holders, 0)->q);
+
+	hkl_detector_compute_kf(detector, geometry, &kf);
+	emergence = _emergence(&n, &kf);
+
+	hkl_vector_project_on_plan(&n, &X);
+	azimuth = hkl_vector_angle(&n, &Y);
+
+	engine->emergence->_value = emergence;
+	engine->azimuth->_value = azimuth;
+
+	return TRUE;
+}
+
+HklMode *hkl_mode_emergence_new(const HklModeInfo *info)
+{
+	static const HklModeOperations operations = {
+		HKL_MODE_OPERATIONS_DEFAULTS,
+		.capabilities = HKL_ENGINE_CAPABILITIES_READABLE,
+		.get = hkl_mode_emergence_get_real,
+		.set = hkl_mode_readonly_set_real,
+	};
+	HklModeIncidence *self = HKL_MALLOC(HklModeIncidence);
+
+	/* the base constructor; */
+	hkl_mode_init(&self->parent,
+		      info,
+		      &operations, TRUE);
+
+	self->n_x = register_mode_parameter(&self->parent, 0);
+	self->n_y = register_mode_parameter(&self->parent, 1);
+	self->n_z = register_mode_parameter(&self->parent, 2);
+
+	return &self->parent;
+}
+
+HklEngine *hkl_engine_emergence_new(HklEngineList *engines)
+{
+	HklEngineEmergence *self;
+	static const HklParameter emergence = {
+		HKL_PARAMETER_DEFAULTS_ANGLE, .name = "emergence",
+		.description = "incidence of the outgoing beam.",
+	};
+	static const HklParameter azimuth = {
+		HKL_PARAMETER_DEFAULTS_ANGLE, .name = "azimuth",
+		.description = "azimuth of the sample surface (projection of $\\vec{n}$ on the $yOz$ plan",
+	};
+	static const HklParameter *pseudo_axes[] = {&emergence, &azimuth};
+	static HklEngineInfo info = {
+		HKL_ENGINE_INFO("emergence",
+				pseudo_axes,
+				HKL_ENGINE_DEPENDENCIES_AXES | HKL_ENGINE_DEPENDENCIES_SAMPLE),
+	};
+	static HklEngineOperations operations = {
+		HKL_ENGINE_OPERATIONS_DEFAULTS,
+	};
+
+	self = HKL_MALLOC(HklEngineEmergence);
+
+	hkl_engine_init(&self->engine, &info, &operations, engines);
+
+	self->emergence = register_pseudo_axis(&self->engine, engines, &emergence);
+	self->azimuth = register_pseudo_axis(&self->engine, engines, &azimuth);
+
+	return &self->engine;
+}
diff --git a/hkl/hkl-pseudoaxis-common-tth.c b/hkl/hkl-pseudoaxis-common-tth.c
index 945a056..5ba7064 100644
--- a/hkl/hkl-pseudoaxis-common-tth.c
+++ b/hkl/hkl-pseudoaxis-common-tth.c
@@ -53,7 +53,7 @@ struct _HklEngineTth2
 };
 
 static void _tth2(HklGeometry *geometry, HklDetector *detector,
-		double *tth, double *alpha)
+		  double *tth, double *alpha)
 {
 	HklVector kf, ki;
 	static HklVector x = {
@@ -97,11 +97,11 @@ static const HklFunction tth2_func = {
 };
 
 static int get_tth2_real(HklMode *self,
-		       HklEngine *engine,
-		       HklGeometry *geometry,
-		       HklDetector *detector,
-		       HklSample *sample,
-		       GError **error)
+			 HklEngine *engine,
+			 HklGeometry *geometry,
+			 HklDetector *detector,
+			 HklSample *sample,
+			 GError **error)
 {
 	HklEngineTth2 *engine_tth2 = container_of(engine, HklEngineTth2, engine);
 
diff --git a/hkl/hkl-pseudoaxis-private.h b/hkl/hkl-pseudoaxis-private.h
index a3f801c..59b280a 100644
--- a/hkl/hkl-pseudoaxis-private.h
+++ b/hkl/hkl-pseudoaxis-private.h
@@ -410,7 +410,7 @@ static inline HklParameter *register_pseudo_axis(HklEngine *self,
 out:
 	darray_append(self->pseudo_axes, parameter);
 	darray_append(self->pseudo_axis_names, parameter->name);
-	
+
 	return parameter;
 }
 
diff --git a/hkl/hkl-pseudoaxis.c b/hkl/hkl-pseudoaxis.c
index af63c4a..f992d7e 100644
--- a/hkl/hkl-pseudoaxis.c
+++ b/hkl/hkl-pseudoaxis.c
@@ -122,8 +122,8 @@ const darray_string *hkl_engine_pseudo_axis_names_get(HklEngine *self)
  * return value: TRUE if succeded or FALSE otherwise.
  **/
 int hkl_engine_pseudo_axis_values_get(HklEngine *self,
-				       double values[], size_t n_values,
-				       HklUnitEnum unit_type, GError **error)
+				      double values[], size_t n_values,
+				      HklUnitEnum unit_type, GError **error)
 {
 	hkl_error(error == NULL ||*error == NULL);
 
@@ -317,7 +317,7 @@ HklGeometryList *hkl_engine_pseudo_axis_set(HklEngine *self,
  *                               with hkl_engine_initialize before
  *                               reading or writing on it.
  *
- * Returns: 
+ * Returns:
  **/
 unsigned int hkl_engine_capabilities_get(const HklEngine *self)
 {
@@ -434,7 +434,7 @@ const HklParameter *hkl_engine_parameter_get(const HklEngine *self,
 /**
  * hkl_engine_parameter_set:
  * @self: the this ptr
- * @name: the name of the parameter to set. 
+ * @name: the name of the parameter to set.
  * @parameter: the parameter to set.
  * @error: return location for a GError, or NULL
  *
@@ -518,7 +518,7 @@ int hkl_engine_current_mode_set(HklEngine *self, const char *name,
 /**
  * hkl_engine_axis_names_get:
  * @self: the this ptr
- * @mode: 
+ * @mode:
  *
  * return a list of axes relevant when reading or writing on the
  * #HklEngine.
@@ -527,7 +527,7 @@ int hkl_engine_current_mode_set(HklEngine *self, const char *name,
  * Engine control only 3 motors when writing, but the hkl values
  * depends on the 6 motors when reading.
  *
- * Returns: (type gpointer): 
+ * Returns: (type gpointer):
  **/
 const darray_string *hkl_engine_axis_names_get(const HklEngine *self,
 					       HklEngineAxisNamesGet mode)
diff --git a/hkl/hkl-sample.c b/hkl/hkl-sample.c
index 02d3342..fedcab6 100644
--- a/hkl/hkl-sample.c
+++ b/hkl/hkl-sample.c
@@ -797,8 +797,8 @@ int hkl_sample_affine(HklSample *self, GError **error)
  * Returns: the measured angle beetween them
  **/
 double hkl_sample_get_reflection_measured_angle(const HklSample *self,
-					       const HklSampleReflection *r1,
-					       const HklSampleReflection *r2)
+						const HklSampleReflection *r1,
+						const HklSampleReflection *r2)
 {
 	return hkl_vector_angle(&r1->_hkl,
 				&r2->_hkl);
diff --git a/hkl/hkl-type-builtins.c b/hkl/hkl-type-builtins.c
index 2012861..feecebf 100644
--- a/hkl/hkl-type-builtins.c
+++ b/hkl/hkl-type-builtins.c
@@ -10,80 +10,79 @@
 GType
 hkl_unit_enum_get_type (void)
 {
-    static GType etype = 0;
-    if (G_UNLIKELY(etype == 0)) {
-        static const GEnumValue values[] = {
-            { HKL_UNIT_DEFAULT, "HKL_UNIT_DEFAULT", "default" },
-            { HKL_UNIT_USER, "HKL_UNIT_USER", "user" },
-            { 0, NULL, NULL }
-        };
-        etype = g_enum_register_static (g_intern_static_string ("HklUnitEnum"), values);
-    }
-    return etype;
+	static GType etype = 0;
+	if (G_UNLIKELY(etype == 0)) {
+		static const GEnumValue values[] = {
+			{ HKL_UNIT_DEFAULT, "HKL_UNIT_DEFAULT", "default" },
+			{ HKL_UNIT_USER, "HKL_UNIT_USER", "user" },
+			{ 0, NULL, NULL }
+		};
+		etype = g_enum_register_static (g_intern_static_string ("HklUnitEnum"), values);
+	}
+	return etype;
 }
 
 GType
 hkl_detector_type_get_type (void)
 {
-    static GType etype = 0;
-    if (G_UNLIKELY(etype == 0)) {
-        static const GEnumValue values[] = {
-            { HKL_DETECTOR_TYPE_0D, "HKL_DETECTOR_TYPE_0D", "0d" },
-            { 0, NULL, NULL }
-        };
-        etype = g_enum_register_static (g_intern_static_string ("HklDetectorType"), values);
-    }
-    return etype;
+	static GType etype = 0;
+	if (G_UNLIKELY(etype == 0)) {
+		static const GEnumValue values[] = {
+			{ HKL_DETECTOR_TYPE_0D, "HKL_DETECTOR_TYPE_0D", "0d" },
+			{ 0, NULL, NULL }
+		};
+		etype = g_enum_register_static (g_intern_static_string ("HklDetectorType"), values);
+	}
+	return etype;
 }
 
 GType
 hkl_engine_capabilities_get_type (void)
 {
-    static GType etype = 0;
-    if (G_UNLIKELY(etype == 0)) {
-        static const GFlagsValue values[] = {
-            { HKL_ENGINE_CAPABILITIES_READABLE, "HKL_ENGINE_CAPABILITIES_READABLE", "readable" },
-            { HKL_ENGINE_CAPABILITIES_WRITABLE, "HKL_ENGINE_CAPABILITIES_WRITABLE", "writable" },
-            { HKL_ENGINE_CAPABILITIES_INITIALIZABLE, "HKL_ENGINE_CAPABILITIES_INITIALIZABLE", "initializable" },
-            { 0, NULL, NULL }
-        };
-        etype = g_flags_register_static (g_intern_static_string ("HklEngineCapabilities"), values);
-    }
-    return etype;
+	static GType etype = 0;
+	if (G_UNLIKELY(etype == 0)) {
+		static const GFlagsValue values[] = {
+			{ HKL_ENGINE_CAPABILITIES_READABLE, "HKL_ENGINE_CAPABILITIES_READABLE", "readable" },
+			{ HKL_ENGINE_CAPABILITIES_WRITABLE, "HKL_ENGINE_CAPABILITIES_WRITABLE", "writable" },
+			{ HKL_ENGINE_CAPABILITIES_INITIALIZABLE, "HKL_ENGINE_CAPABILITIES_INITIALIZABLE", "initializable" },
+			{ 0, NULL, NULL }
+		};
+		etype = g_flags_register_static (g_intern_static_string ("HklEngineCapabilities"), values);
+	}
+	return etype;
 }
 
 GType
 hkl_engine_axis_names_get_get_type (void)
 {
-    static GType etype = 0;
-    if (G_UNLIKELY(etype == 0)) {
-        static const GEnumValue values[] = {
-            { HKL_ENGINE_AXIS_NAMES_GET_READ, "HKL_ENGINE_AXIS_NAMES_GET_READ", "read" },
-            { HKL_ENGINE_AXIS_NAMES_GET_WRITE, "HKL_ENGINE_AXIS_NAMES_GET_WRITE", "write" },
-            { 0, NULL, NULL }
-        };
-        etype = g_enum_register_static (g_intern_static_string ("HklEngineAxisNamesGet"), values);
-    }
-    return etype;
+	static GType etype = 0;
+	if (G_UNLIKELY(etype == 0)) {
+		static const GEnumValue values[] = {
+			{ HKL_ENGINE_AXIS_NAMES_GET_READ, "HKL_ENGINE_AXIS_NAMES_GET_READ", "read" },
+			{ HKL_ENGINE_AXIS_NAMES_GET_WRITE, "HKL_ENGINE_AXIS_NAMES_GET_WRITE", "write" },
+			{ 0, NULL, NULL }
+		};
+		etype = g_enum_register_static (g_intern_static_string ("HklEngineAxisNamesGet"), values);
+	}
+	return etype;
 }
 
 GType
 hkl_engine_dependencies_get_type (void)
 {
-    static GType etype = 0;
-    if (G_UNLIKELY(etype == 0)) {
-        static const GFlagsValue values[] = {
-            { HKL_ENGINE_DEPENDENCIES_AXES, "HKL_ENGINE_DEPENDENCIES_AXES", "axes" },
-            { HKL_ENGINE_DEPENDENCIES_ENERGY, "HKL_ENGINE_DEPENDENCIES_ENERGY", "energy" },
-            { HKL_ENGINE_DEPENDENCIES_SAMPLE, "HKL_ENGINE_DEPENDENCIES_SAMPLE", "sample" },
-            { 0, NULL, NULL }
-        };
-        etype = g_flags_register_static (g_intern_static_string ("HklEngineDependencies"), values);
-    }
-    return etype;
+	static GType etype = 0;
+	if (G_UNLIKELY(etype == 0)) {
+		static const GFlagsValue values[] = {
+			{ HKL_ENGINE_DEPENDENCIES_AXES, "HKL_ENGINE_DEPENDENCIES_AXES", "axes" },
+			{ HKL_ENGINE_DEPENDENCIES_ENERGY, "HKL_ENGINE_DEPENDENCIES_ENERGY", "energy" },
+			{ HKL_ENGINE_DEPENDENCIES_SAMPLE, "HKL_ENGINE_DEPENDENCIES_SAMPLE", "sample" },
+			{ 0, NULL, NULL }
+		};
+		etype = g_flags_register_static (g_intern_static_string ("HklEngineDependencies"), values);
+	}
+	return etype;
 }
 
 #define __HKL_TYPE_BUILTINS_C__
 
 /* Generated data ends here */
-
diff --git a/hkl/hkl-type-builtins.h b/hkl/hkl-type-builtins.h
index e1d1569..9813ee7 100644
--- a/hkl/hkl-type-builtins.h
+++ b/hkl/hkl-type-builtins.h
@@ -26,4 +26,3 @@ G_END_DECLS
 #endif /* __HKL_TYPE_BUILTINS_H__ */
 
 /* Generated data ends here */
-
diff --git a/hkl/hkl-types.c b/hkl/hkl-types.c
index c35f729..bf41a8d 100644
--- a/hkl/hkl-types.c
+++ b/hkl/hkl-types.c
@@ -35,7 +35,7 @@
 	GType hkl_## type ## _get_type (void) {				\
 		static volatile gsize hkl_type_id__volatile = 0;	\
 		if (g_once_init_enter (&hkl_type_id__volatile)) {	\
-			GType hkl_type_id;			\
+			GType hkl_type_id;				\
 			hkl_type_id = g_boxed_type_register_static (	\
 				#camelcase_type,			\
 				(GBoxedCopyFunc) copy,			\
diff --git a/hkl3d/Makefile.in b/hkl3d/Makefile.in
index 10c0095..6256a49 100644
--- a/hkl3d/Makefile.in
+++ b/hkl3d/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.14.1 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
-# Foundation, Inc.
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -19,23 +18,51 @@
 
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
+    esac; \
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -55,8 +82,8 @@ POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
 subdir = hkl3d
-DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \
-	$(srcdir)/Makefile.in
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+	$(top_srcdir)/config/depcomp $(noinst_HEADERS)
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/m4/gtk-doc.m4 \
 	$(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
@@ -75,6 +102,19 @@ libhkl3d_la_OBJECTS = $(am_libhkl3d_la_OBJECTS)
 AM_V_lt = $(am__v_lt_ at AM_V@)
 am__v_lt_ = $(am__v_lt_ at AM_DEFAULT_V@)
 am__v_lt_0 = --silent
+am__v_lt_1 = 
+AM_V_P = $(am__v_P_ at AM_V@)
+am__v_P_ = $(am__v_P_ at AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_ at AM_V@)
+am__v_GEN_ = $(am__v_GEN_ at AM_DEFAULT_V@)
+am__v_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
+AM_V_at = $(am__v_at_ at AM_V@)
+am__v_at_ = $(am__v_at_ at AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 DEFAULT_INCLUDES = -I. at am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/config/depcomp
 am__depfiles_maybe = depfiles
@@ -87,20 +127,16 @@ LTCXXCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \
 	$(AM_CXXFLAGS) $(CXXFLAGS)
 AM_V_CXX = $(am__v_CXX_ at AM_V@)
 am__v_CXX_ = $(am__v_CXX_ at AM_DEFAULT_V@)
-am__v_CXX_0 = @echo "  CXX   " $@;
-AM_V_at = $(am__v_at_ at AM_V@)
-am__v_at_ = $(am__v_at_ at AM_DEFAULT_V@)
-am__v_at_0 = @
+am__v_CXX_0 = @echo "  CXX     " $@;
+am__v_CXX_1 = 
 CXXLD = $(CXX)
 CXXLINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \
 	$(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \
 	$(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
 AM_V_CXXLD = $(am__v_CXXLD_ at AM_V@)
 am__v_CXXLD_ = $(am__v_CXXLD_ at AM_DEFAULT_V@)
-am__v_CXXLD_0 = @echo "  CXXLD " $@;
-AM_V_GEN = $(am__v_GEN_ at AM_V@)
-am__v_GEN_ = $(am__v_GEN_ at AM_DEFAULT_V@)
-am__v_GEN_0 = @echo "  GEN   " $@;
+am__v_CXXLD_0 = @echo "  CXXLD   " $@;
+am__v_CXXLD_1 = 
 SOURCES = $(libhkl3d_la_SOURCES)
 DIST_SOURCES = $(libhkl3d_la_SOURCES)
 am__can_run_installinfo = \
@@ -109,6 +145,23 @@ am__can_run_installinfo = \
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
 HEADERS = $(noinst_HEADERS)
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -163,6 +216,7 @@ GSL_CFLAGS = @GSL_CFLAGS@
 GSL_CONFIG = @GSL_CONFIG@
 GSL_LIBS = @GSL_LIBS@
 GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_CHECK_PATH = @GTKDOC_CHECK_PATH@
 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
 GTKDOC_MKPDF = @GTKDOC_MKPDF@
@@ -339,12 +393,15 @@ $(am__aclocal_m4_deps):
 
 clean-noinstLTLIBRARIES:
 	-test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES)
-	@list='$(noinst_LTLIBRARIES)'; for p in $$list; do \
-	  dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
-	  test "$$dir" != "$$p" || dir=.; \
-	  echo "rm -f \"$${dir}/so_locations\""; \
-	  rm -f "$${dir}/so_locations"; \
-	done
+	@list='$(noinst_LTLIBRARIES)'; \
+	locs=`for p in $$list; do echo $$p; done | \
+	      sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
+	      sort -u`; \
+	test -z "$$locs" || { \
+	  echo rm -f $${locs}; \
+	  rm -f $${locs}; \
+	}
+
 libhkl3d.la: $(libhkl3d_la_OBJECTS) $(libhkl3d_la_DEPENDENCIES) $(EXTRA_libhkl3d_la_DEPENDENCIES) 
 	$(AM_V_CXXLD)$(CXXLINK)  $(libhkl3d_la_OBJECTS) $(libhkl3d_la_LIBADD) $(LIBS)
 
@@ -386,26 +443,15 @@ mostlyclean-libtool:
 clean-libtool:
 	-rm -rf .libs _libs
 
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
-	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	mkid -fID $$unique
-tags: TAGS
-
-TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	set x; \
 	here=`pwd`; \
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -417,15 +463,11 @@ TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 	      $$unique; \
 	  fi; \
 	fi
-ctags: CTAGS
-CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -434,6 +476,21 @@ GTAGS:
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -575,18 +632,19 @@ uninstall-am:
 
 .MAKE: install-am install-strip
 
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
-	clean-libtool clean-noinstLTLIBRARIES ctags distclean \
-	distclean-compile distclean-generic distclean-libtool \
-	distclean-tags distdir dvi dvi-am html html-am info info-am \
-	install install-am install-data install-data-am install-dvi \
-	install-dvi-am install-exec install-exec-am install-html \
-	install-html-am install-info install-info-am install-man \
-	install-pdf install-pdf-am install-ps install-ps-am \
-	install-strip installcheck installcheck-am installdirs \
-	maintainer-clean maintainer-clean-generic mostlyclean \
-	mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
-	pdf pdf-am ps ps-am tags uninstall uninstall-am
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+	clean-libtool clean-noinstLTLIBRARIES cscopelist-am ctags \
+	ctags-am distclean distclean-compile distclean-generic \
+	distclean-libtool distclean-tags distdir dvi dvi-am html \
+	html-am info info-am install install-am install-data \
+	install-data-am install-dvi install-dvi-am install-exec \
+	install-exec-am install-html install-html-am install-info \
+	install-info-am install-man install-pdf install-pdf-am \
+	install-ps install-ps-am install-strip installcheck \
+	installcheck-am installdirs maintainer-clean \
+	maintainer-clean-generic mostlyclean mostlyclean-compile \
+	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
+	tags tags-am uninstall uninstall-am
 
 
 # Support for GNU Flymake, in Emacs.
diff --git a/m4/gtk-doc.m4 b/m4/gtk-doc.m4
index 0ada151..3675543 100644
--- a/m4/gtk-doc.m4
+++ b/m4/gtk-doc.m4
@@ -1,6 +1,6 @@
 dnl -*- mode: autoconf -*-
 
-# serial 1
+# serial 2
 
 dnl Usage:
 dnl   GTK_DOC_CHECK([minimum-gtk-doc-version])
@@ -10,8 +10,24 @@ AC_DEFUN([GTK_DOC_CHECK],
   AC_BEFORE([AC_PROG_LIBTOOL],[$0])dnl setup libtool first
   AC_BEFORE([AM_PROG_LIBTOOL],[$0])dnl setup libtool first
 
+  ifelse([$1],[],[gtk_doc_requires="gtk-doc"],[gtk_doc_requires="gtk-doc >= $1"])
+  AC_MSG_CHECKING([for gtk-doc])
+  PKG_CHECK_EXISTS([$gtk_doc_requires],[have_gtk_doc=yes],[have_gtk_doc=no])
+  AC_MSG_RESULT($have_gtk_doc)
+
+  if test "$have_gtk_doc" = "no"; then
+      AC_MSG_WARN([
+  You will not be able to create source packages with 'make dist'
+  because $gtk_doc_requires is not found.])
+  fi
+
   dnl check for tools we added during development
-  AC_PATH_PROG([GTKDOC_CHECK],[gtkdoc-check])
+  dnl Use AC_CHECK_PROG to avoid the check target using an absolute path that
+  dnl may not be writable by the user. Currently, automake requires that the
+  dnl test name must end in '.test'.
+  dnl https://bugzilla.gnome.org/show_bug.cgi?id=701638
+  AC_CHECK_PROG([GTKDOC_CHECK],[gtkdoc-check],[gtkdoc-check.test])
+  AC_PATH_PROG([GTKDOC_CHECK_PATH],[gtkdoc-check])
   AC_PATH_PROGS([GTKDOC_REBASE],[gtkdoc-rebase],[true])
   AC_PATH_PROG([GTKDOC_MKPDF],[gtkdoc-mkpdf])
 
@@ -28,22 +44,22 @@ AC_DEFUN([GTK_DOC_CHECK],
                    [use gtk-doc to build documentation [[default=no]]]),,
     [enable_gtk_doc=no])
 
-  if test x$enable_gtk_doc = xyes; then
-    ifelse([$1],[],
-      [PKG_CHECK_EXISTS([gtk-doc],,
-                        AC_MSG_ERROR([gtk-doc not installed and --enable-gtk-doc requested]))],
-      [PKG_CHECK_EXISTS([gtk-doc >= $1],,
-                        AC_MSG_ERROR([You need to have gtk-doc >= $1 installed to build $PACKAGE_NAME]))])
-    dnl don't check for glib if we build glib
-    if test "x$PACKAGE_NAME" != "xglib"; then
-      dnl don't fail if someone does not have glib
-      PKG_CHECK_MODULES(GTKDOC_DEPS, glib-2.0 >= 2.10.0 gobject-2.0  >= 2.10.0,,)
-    fi
-  fi
-
   AC_MSG_CHECKING([whether to build gtk-doc documentation])
   AC_MSG_RESULT($enable_gtk_doc)
 
+  if test "x$enable_gtk_doc" = "xyes" && test "$have_gtk_doc" = "no"; then
+    AC_MSG_ERROR([
+  You must have $gtk_doc_requires installed to build documentation for
+  $PACKAGE_NAME. Please install gtk-doc or disable building the
+  documentation by adding '--disable-gtk-doc' to '[$]0'.])
+  fi
+
+  dnl don't check for glib if we build glib
+  if test "x$PACKAGE_NAME" != "xglib"; then
+    dnl don't fail if someone does not have glib
+    PKG_CHECK_MODULES(GTKDOC_DEPS, glib-2.0 >= 2.10.0 gobject-2.0  >= 2.10.0,,[:])
+  fi
+
   dnl enable/disable output formats
   AC_ARG_ENABLE([gtk-doc-html],
     AS_HELP_STRING([--enable-gtk-doc-html],
@@ -58,7 +74,12 @@ AC_DEFUN([GTK_DOC_CHECK],
     enable_gtk_doc_pdf=no
   fi
 
+  if test -z "$AM_DEFAULT_VERBOSITY"; then
+    AM_DEFAULT_VERBOSITY=1
+  fi
+  AC_SUBST([AM_DEFAULT_VERBOSITY])
 
+  AM_CONDITIONAL([HAVE_GTK_DOC], [test x$have_gtk_doc = xyes])
   AM_CONDITIONAL([ENABLE_GTK_DOC], [test x$enable_gtk_doc = xyes])
   AM_CONDITIONAL([GTK_DOC_BUILD_HTML], [test x$enable_gtk_doc_html = xyes])
   AM_CONDITIONAL([GTK_DOC_BUILD_PDF], [test x$enable_gtk_doc_pdf = xyes])
diff --git a/m4/libtool.m4 b/m4/libtool.m4
index 534d1cc..d7c043f 100644
--- a/m4/libtool.m4
+++ b/m4/libtool.m4
@@ -1312,7 +1312,7 @@ ia64-*-hpux*)
   rm -rf conftest*
   ;;
 
-x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \
+x86_64-*kfreebsd*-gnu|x86_64-*linux*|powerpc*-*linux*| \
 s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
   # Find out which ABI we are using.
   echo 'int i;' > conftest.$ac_ext
@@ -1324,9 +1324,19 @@ s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
 	    LD="${LD-ld} -m elf_i386_fbsd"
 	    ;;
 	  x86_64-*linux*)
-	    LD="${LD-ld} -m elf_i386"
+	    case `/usr/bin/file conftest.o` in
+	      *x86-64*)
+		LD="${LD-ld} -m elf32_x86_64"
+		;;
+	      *)
+		LD="${LD-ld} -m elf_i386"
+		;;
+	    esac
+	    ;;
+	  powerpc64le-*)
+	    LD="${LD-ld} -m elf32lppclinux"
 	    ;;
-	  ppc64-*linux*|powerpc64-*linux*)
+	  powerpc64-*)
 	    LD="${LD-ld} -m elf32ppclinux"
 	    ;;
 	  s390x-*linux*)
@@ -1345,7 +1355,10 @@ s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
 	  x86_64-*linux*)
 	    LD="${LD-ld} -m elf_x86_64"
 	    ;;
-	  ppc*-*linux*|powerpc*-*linux*)
+	  powerpcle-*)
+	    LD="${LD-ld} -m elf64lppc"
+	    ;;
+	  powerpc-*)
 	    LD="${LD-ld} -m elf64ppc"
 	    ;;
 	  s390*-*linux*|s390*-*tpf*)
@@ -1688,7 +1701,8 @@ AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl
     ;;
   *)
     lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null`
-    if test -n "$lt_cv_sys_max_cmd_len"; then
+    if test -n "$lt_cv_sys_max_cmd_len" && \
+	test undefined != "$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
diff --git a/tests/Makefile.in b/tests/Makefile.in
index fda4791..7757730 100644
--- a/tests/Makefile.in
+++ b/tests/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.14.1 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
-# Foundation, Inc.
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -15,23 +14,51 @@
 
 @SET_MAKE@
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
+    esac; \
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -61,7 +88,8 @@ host_triplet = @host@
 
 check_PROGRAMS = runtests$(EXEEXT) $(am__EXEEXT_2)
 subdir = tests
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+	$(top_srcdir)/config/depcomp
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/m4/gtk-doc.m4 \
 	$(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
@@ -97,6 +125,7 @@ hkl_axis_t_DEPENDENCIES = $(top_builddir)/hkl/libhkl.la \
 AM_V_lt = $(am__v_lt_ at AM_V@)
 am__v_lt_ = $(am__v_lt_ at AM_DEFAULT_V@)
 am__v_lt_0 = --silent
+am__v_lt_1 = 
 hkl_bench_t_SOURCES = hkl-bench-t.c
 hkl_bench_t_OBJECTS = hkl-bench-t.$(OBJEXT)
 hkl_bench_t_LDADD = $(LDADD)
@@ -232,6 +261,18 @@ runtests_LDADD = $(LDADD)
 runtests_DEPENDENCIES = $(top_builddir)/hkl/libhkl.la \
 	$(top_builddir)/tests/tap/libtap.a $(am__DEPENDENCIES_1) \
 	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_2)
+AM_V_P = $(am__v_P_ at AM_V@)
+am__v_P_ = $(am__v_P_ at AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_ at AM_V@)
+am__v_GEN_ = $(am__v_GEN_ at AM_DEFAULT_V@)
+am__v_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
+AM_V_at = $(am__v_at_ at AM_V@)
+am__v_at_ = $(am__v_at_ at AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 DEFAULT_INCLUDES = -I. at am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/config/depcomp
 am__depfiles_maybe = depfiles
@@ -244,17 +285,16 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(AM_CFLAGS) $(CFLAGS)
 AM_V_CC = $(am__v_CC_ at AM_V@)
 am__v_CC_ = $(am__v_CC_ at AM_DEFAULT_V@)
-am__v_CC_0 = @echo "  CC    " $@;
-AM_V_at = $(am__v_at_ at AM_V@)
-am__v_at_ = $(am__v_at_ at AM_DEFAULT_V@)
-am__v_at_0 = @
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
 CCLD = $(CC)
 LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
 	$(AM_LDFLAGS) $(LDFLAGS) -o $@
 AM_V_CCLD = $(am__v_CCLD_ at AM_V@)
 am__v_CCLD_ = $(am__v_CCLD_ at AM_DEFAULT_V@)
-am__v_CCLD_0 = @echo "  CCLD  " $@;
+am__v_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
 CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
 	$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
 LTCXXCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \
@@ -263,17 +303,16 @@ LTCXXCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \
 	$(AM_CXXFLAGS) $(CXXFLAGS)
 AM_V_CXX = $(am__v_CXX_ at AM_V@)
 am__v_CXX_ = $(am__v_CXX_ at AM_DEFAULT_V@)
-am__v_CXX_0 = @echo "  CXX   " $@;
+am__v_CXX_0 = @echo "  CXX     " $@;
+am__v_CXX_1 = 
 CXXLD = $(CXX)
 CXXLINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \
 	$(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \
 	$(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
 AM_V_CXXLD = $(am__v_CXXLD_ at AM_V@)
 am__v_CXXLD_ = $(am__v_CXXLD_ at AM_DEFAULT_V@)
-am__v_CXXLD_0 = @echo "  CXXLD " $@;
-AM_V_GEN = $(am__v_GEN_ at AM_V@)
-am__v_GEN_ = $(am__v_GEN_ at AM_DEFAULT_V@)
-am__v_GEN_0 = @echo "  GEN   " $@;
+am__v_CXXLD_0 = @echo "  CXXLD   " $@;
+am__v_CXXLD_1 = 
 SOURCES = hkl-axis-t.c hkl-bench-t.c hkl-detector-t.c hkl-geometry-t.c \
 	hkl-interval-t.c hkl-lattice-t.c hkl-matrix-t.c \
 	hkl-parameter-t.c hkl-pseudoaxis-e4ch-t.c \
@@ -292,13 +331,14 @@ DIST_SOURCES = hkl-axis-t.c hkl-bench-t.c hkl-detector-t.c \
 	hkl-pseudoaxis-zaxis-t.c hkl-quaternion-t.c hkl-sample-t.c \
 	hkl-source-t.c hkl-unit-t.c hkl-vector-t.c hkl3d-test-t.c \
 	runtests.c
-RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
-	html-recursive info-recursive install-data-recursive \
-	install-dvi-recursive install-exec-recursive \
-	install-html-recursive install-info-recursive \
-	install-pdf-recursive install-ps-recursive install-recursive \
-	installcheck-recursive installdirs-recursive pdf-recursive \
-	ps-recursive uninstall-recursive
+RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \
+	ctags-recursive dvi-recursive html-recursive info-recursive \
+	install-data-recursive install-dvi-recursive \
+	install-exec-recursive install-html-recursive \
+	install-info-recursive install-pdf-recursive \
+	install-ps-recursive install-recursive installcheck-recursive \
+	installdirs-recursive pdf-recursive ps-recursive \
+	tags-recursive uninstall-recursive
 am__can_run_installinfo = \
   case $$AM_UPDATE_INFO_DIR in \
     n|no|NO) false;; \
@@ -306,9 +346,29 @@ am__can_run_installinfo = \
   esac
 RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive	\
   distclean-recursive maintainer-clean-recursive
-AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
-	$(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \
+am__recursive_targets = \
+  $(RECURSIVE_TARGETS) \
+  $(RECURSIVE_CLEAN_TARGETS) \
+  $(am__extra_recursive_targets)
+AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \
 	distdir
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DIST_SUBDIRS = tap . bindings
@@ -389,6 +449,7 @@ GSL_CFLAGS = @GSL_CFLAGS@
 GSL_CONFIG = @GSL_CONFIG@
 GSL_LIBS = @GSL_LIBS@
 GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_CHECK_PATH = @GTKDOC_CHECK_PATH@
 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
 GTKDOC_MKPDF = @GTKDOC_MKPDF@
@@ -566,72 +627,95 @@ clean-checkPROGRAMS:
 	list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
 	echo " rm -f" $$list; \
 	rm -f $$list
+
 hkl-axis-t$(EXEEXT): $(hkl_axis_t_OBJECTS) $(hkl_axis_t_DEPENDENCIES) $(EXTRA_hkl_axis_t_DEPENDENCIES) 
 	@rm -f hkl-axis-t$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(hkl_axis_t_OBJECTS) $(hkl_axis_t_LDADD) $(LIBS)
+
 hkl-bench-t$(EXEEXT): $(hkl_bench_t_OBJECTS) $(hkl_bench_t_DEPENDENCIES) $(EXTRA_hkl_bench_t_DEPENDENCIES) 
 	@rm -f hkl-bench-t$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(hkl_bench_t_OBJECTS) $(hkl_bench_t_LDADD) $(LIBS)
+
 hkl-detector-t$(EXEEXT): $(hkl_detector_t_OBJECTS) $(hkl_detector_t_DEPENDENCIES) $(EXTRA_hkl_detector_t_DEPENDENCIES) 
 	@rm -f hkl-detector-t$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(hkl_detector_t_OBJECTS) $(hkl_detector_t_LDADD) $(LIBS)
+
 hkl-geometry-t$(EXEEXT): $(hkl_geometry_t_OBJECTS) $(hkl_geometry_t_DEPENDENCIES) $(EXTRA_hkl_geometry_t_DEPENDENCIES) 
 	@rm -f hkl-geometry-t$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(hkl_geometry_t_OBJECTS) $(hkl_geometry_t_LDADD) $(LIBS)
+
 hkl-interval-t$(EXEEXT): $(hkl_interval_t_OBJECTS) $(hkl_interval_t_DEPENDENCIES) $(EXTRA_hkl_interval_t_DEPENDENCIES) 
 	@rm -f hkl-interval-t$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(hkl_interval_t_OBJECTS) $(hkl_interval_t_LDADD) $(LIBS)
+
 hkl-lattice-t$(EXEEXT): $(hkl_lattice_t_OBJECTS) $(hkl_lattice_t_DEPENDENCIES) $(EXTRA_hkl_lattice_t_DEPENDENCIES) 
 	@rm -f hkl-lattice-t$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(hkl_lattice_t_OBJECTS) $(hkl_lattice_t_LDADD) $(LIBS)
+
 hkl-matrix-t$(EXEEXT): $(hkl_matrix_t_OBJECTS) $(hkl_matrix_t_DEPENDENCIES) $(EXTRA_hkl_matrix_t_DEPENDENCIES) 
 	@rm -f hkl-matrix-t$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(hkl_matrix_t_OBJECTS) $(hkl_matrix_t_LDADD) $(LIBS)
+
 hkl-parameter-t$(EXEEXT): $(hkl_parameter_t_OBJECTS) $(hkl_parameter_t_DEPENDENCIES) $(EXTRA_hkl_parameter_t_DEPENDENCIES) 
 	@rm -f hkl-parameter-t$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(hkl_parameter_t_OBJECTS) $(hkl_parameter_t_LDADD) $(LIBS)
+
 hkl-pseudoaxis-e4ch-t$(EXEEXT): $(hkl_pseudoaxis_e4ch_t_OBJECTS) $(hkl_pseudoaxis_e4ch_t_DEPENDENCIES) $(EXTRA_hkl_pseudoaxis_e4ch_t_DEPENDENCIES) 
 	@rm -f hkl-pseudoaxis-e4ch-t$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(hkl_pseudoaxis_e4ch_t_OBJECTS) $(hkl_pseudoaxis_e4ch_t_LDADD) $(LIBS)
+
 hkl-pseudoaxis-e4cv-t$(EXEEXT): $(hkl_pseudoaxis_e4cv_t_OBJECTS) $(hkl_pseudoaxis_e4cv_t_DEPENDENCIES) $(EXTRA_hkl_pseudoaxis_e4cv_t_DEPENDENCIES) 
 	@rm -f hkl-pseudoaxis-e4cv-t$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(hkl_pseudoaxis_e4cv_t_OBJECTS) $(hkl_pseudoaxis_e4cv_t_LDADD) $(LIBS)
+
 hkl-pseudoaxis-e6c-t$(EXEEXT): $(hkl_pseudoaxis_e6c_t_OBJECTS) $(hkl_pseudoaxis_e6c_t_DEPENDENCIES) $(EXTRA_hkl_pseudoaxis_e6c_t_DEPENDENCIES) 
 	@rm -f hkl-pseudoaxis-e6c-t$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(hkl_pseudoaxis_e6c_t_OBJECTS) $(hkl_pseudoaxis_e6c_t_LDADD) $(LIBS)
+
 hkl-pseudoaxis-k4cv-t$(EXEEXT): $(hkl_pseudoaxis_k4cv_t_OBJECTS) $(hkl_pseudoaxis_k4cv_t_DEPENDENCIES) $(EXTRA_hkl_pseudoaxis_k4cv_t_DEPENDENCIES) 
 	@rm -f hkl-pseudoaxis-k4cv-t$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(hkl_pseudoaxis_k4cv_t_OBJECTS) $(hkl_pseudoaxis_k4cv_t_LDADD) $(LIBS)
+
 hkl-pseudoaxis-k6c-t$(EXEEXT): $(hkl_pseudoaxis_k6c_t_OBJECTS) $(hkl_pseudoaxis_k6c_t_DEPENDENCIES) $(EXTRA_hkl_pseudoaxis_k6c_t_DEPENDENCIES) 
 	@rm -f hkl-pseudoaxis-k6c-t$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(hkl_pseudoaxis_k6c_t_OBJECTS) $(hkl_pseudoaxis_k6c_t_LDADD) $(LIBS)
+
 hkl-pseudoaxis-soleil-sixs-med-t$(EXEEXT): $(hkl_pseudoaxis_soleil_sixs_med_t_OBJECTS) $(hkl_pseudoaxis_soleil_sixs_med_t_DEPENDENCIES) $(EXTRA_hkl_pseudoaxis_soleil_sixs_med_t_DEPENDENCIES) 
 	@rm -f hkl-pseudoaxis-soleil-sixs-med-t$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(hkl_pseudoaxis_soleil_sixs_med_t_OBJECTS) $(hkl_pseudoaxis_soleil_sixs_med_t_LDADD) $(LIBS)
+
 hkl-pseudoaxis-t$(EXEEXT): $(hkl_pseudoaxis_t_OBJECTS) $(hkl_pseudoaxis_t_DEPENDENCIES) $(EXTRA_hkl_pseudoaxis_t_DEPENDENCIES) 
 	@rm -f hkl-pseudoaxis-t$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(hkl_pseudoaxis_t_OBJECTS) $(hkl_pseudoaxis_t_LDADD) $(LIBS)
+
 hkl-pseudoaxis-zaxis-t$(EXEEXT): $(hkl_pseudoaxis_zaxis_t_OBJECTS) $(hkl_pseudoaxis_zaxis_t_DEPENDENCIES) $(EXTRA_hkl_pseudoaxis_zaxis_t_DEPENDENCIES) 
 	@rm -f hkl-pseudoaxis-zaxis-t$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(hkl_pseudoaxis_zaxis_t_OBJECTS) $(hkl_pseudoaxis_zaxis_t_LDADD) $(LIBS)
+
 hkl-quaternion-t$(EXEEXT): $(hkl_quaternion_t_OBJECTS) $(hkl_quaternion_t_DEPENDENCIES) $(EXTRA_hkl_quaternion_t_DEPENDENCIES) 
 	@rm -f hkl-quaternion-t$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(hkl_quaternion_t_OBJECTS) $(hkl_quaternion_t_LDADD) $(LIBS)
+
 hkl-sample-t$(EXEEXT): $(hkl_sample_t_OBJECTS) $(hkl_sample_t_DEPENDENCIES) $(EXTRA_hkl_sample_t_DEPENDENCIES) 
 	@rm -f hkl-sample-t$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(hkl_sample_t_OBJECTS) $(hkl_sample_t_LDADD) $(LIBS)
+
 hkl-source-t$(EXEEXT): $(hkl_source_t_OBJECTS) $(hkl_source_t_DEPENDENCIES) $(EXTRA_hkl_source_t_DEPENDENCIES) 
 	@rm -f hkl-source-t$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(hkl_source_t_OBJECTS) $(hkl_source_t_LDADD) $(LIBS)
+
 hkl-unit-t$(EXEEXT): $(hkl_unit_t_OBJECTS) $(hkl_unit_t_DEPENDENCIES) $(EXTRA_hkl_unit_t_DEPENDENCIES) 
 	@rm -f hkl-unit-t$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(hkl_unit_t_OBJECTS) $(hkl_unit_t_LDADD) $(LIBS)
+
 hkl-vector-t$(EXEEXT): $(hkl_vector_t_OBJECTS) $(hkl_vector_t_DEPENDENCIES) $(EXTRA_hkl_vector_t_DEPENDENCIES) 
 	@rm -f hkl-vector-t$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(hkl_vector_t_OBJECTS) $(hkl_vector_t_LDADD) $(LIBS)
+
 hkl3d-test-t$(EXEEXT): $(hkl3d_test_t_OBJECTS) $(hkl3d_test_t_DEPENDENCIES) $(EXTRA_hkl3d_test_t_DEPENDENCIES) 
 	@rm -f hkl3d-test-t$(EXEEXT)
 	$(AM_V_CXXLD)$(CXXLINK) $(hkl3d_test_t_OBJECTS) $(hkl3d_test_t_LDADD) $(LIBS)
+
 runtests$(EXEEXT): $(runtests_OBJECTS) $(runtests_DEPENDENCIES) $(EXTRA_runtests_DEPENDENCIES) 
 	@rm -f runtests$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(runtests_OBJECTS) $(runtests_LDADD) $(LIBS)
@@ -722,22 +806,25 @@ clean-libtool:
 	-rm -rf .libs _libs
 
 # This directory's subdirectories are mostly independent; you can cd
-# into them and run `make' without going through this Makefile.
-# To change the values of `make' variables: instead of editing Makefiles,
-# (1) if the variable is set in `config.status', edit `config.status'
-#     (which will cause the Makefiles to be regenerated when you run `make');
-# (2) otherwise, pass the desired values on the `make' command line.
-$(RECURSIVE_TARGETS):
-	@fail= failcom='exit 1'; \
-	for f in x $$MAKEFLAGS; do \
-	  case $$f in \
-	    *=* | --[!k]*);; \
-	    *k*) failcom='fail=yes';; \
-	  esac; \
-	done; \
+# into them and run 'make' without going through this Makefile.
+# To change the values of 'make' variables: instead of editing Makefiles,
+# (1) if the variable is set in 'config.status', edit 'config.status'
+#     (which will cause the Makefiles to be regenerated when you run 'make');
+# (2) otherwise, pass the desired values on the 'make' command line.
+$(am__recursive_targets):
+	@fail=; \
+	if $(am__make_keepgoing); then \
+	  failcom='fail=yes'; \
+	else \
+	  failcom='exit 1'; \
+	fi; \
 	dot_seen=no; \
 	target=`echo $@ | sed s/-recursive//`; \
-	list='$(SUBDIRS)'; for subdir in $$list; do \
+	case "$@" in \
+	  distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
+	  *) list='$(SUBDIRS)' ;; \
+	esac; \
+	for subdir in $$list; do \
 	  echo "Making $$target in $$subdir"; \
 	  if test "$$subdir" = "."; then \
 	    dot_seen=yes; \
@@ -752,57 +839,12 @@ $(RECURSIVE_TARGETS):
 	  $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
 	fi; test -z "$$fail"
 
-$(RECURSIVE_CLEAN_TARGETS):
-	@fail= failcom='exit 1'; \
-	for f in x $$MAKEFLAGS; do \
-	  case $$f in \
-	    *=* | --[!k]*);; \
-	    *k*) failcom='fail=yes';; \
-	  esac; \
-	done; \
-	dot_seen=no; \
-	case "$@" in \
-	  distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
-	  *) list='$(SUBDIRS)' ;; \
-	esac; \
-	rev=''; for subdir in $$list; do \
-	  if test "$$subdir" = "."; then :; else \
-	    rev="$$subdir $$rev"; \
-	  fi; \
-	done; \
-	rev="$$rev ."; \
-	target=`echo $@ | sed s/-recursive//`; \
-	for subdir in $$rev; do \
-	  echo "Making $$target in $$subdir"; \
-	  if test "$$subdir" = "."; then \
-	    local_target="$$target-am"; \
-	  else \
-	    local_target="$$target"; \
-	  fi; \
-	  ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
-	  || eval $$failcom; \
-	done && test -z "$$fail"
-tags-recursive:
-	list='$(SUBDIRS)'; for subdir in $$list; do \
-	  test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
-	done
-ctags-recursive:
-	list='$(SUBDIRS)'; for subdir in $$list; do \
-	  test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
-	done
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-recursive
+TAGS: tags
 
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
-	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	mkid -fID $$unique
-tags: TAGS
-
-TAGS: tags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	set x; \
 	here=`pwd`; \
 	if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
@@ -818,12 +860,7 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 	      set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
 	  fi; \
 	done; \
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -835,15 +872,11 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 	      $$unique; \
 	  fi; \
 	fi
-ctags: CTAGS
-CTAGS: ctags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+ctags: ctags-recursive
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -852,6 +885,21 @@ GTAGS:
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-recursive
+
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -1019,23 +1067,22 @@ ps-am:
 
 uninstall-am:
 
-.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) check-am \
-	ctags-recursive install-am install-strip tags-recursive
-
-.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
-	all all-am check check-am check-local clean \
-	clean-checkPROGRAMS clean-generic clean-libtool ctags \
-	ctags-recursive distclean distclean-compile distclean-generic \
-	distclean-libtool distclean-tags distdir dvi dvi-am html \
-	html-am info info-am install install-am install-data \
-	install-data-am install-dvi install-dvi-am install-exec \
-	install-exec-am install-html install-html-am install-info \
-	install-info-am install-man install-pdf install-pdf-am \
-	install-ps install-ps-am install-strip installcheck \
-	installcheck-am installdirs installdirs-am maintainer-clean \
-	maintainer-clean-generic mostlyclean mostlyclean-compile \
-	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
-	tags tags-recursive uninstall uninstall-am
+.MAKE: $(am__recursive_targets) check-am install-am install-strip
+
+.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \
+	check-am check-local clean clean-checkPROGRAMS clean-generic \
+	clean-libtool cscopelist-am ctags ctags-am distclean \
+	distclean-compile distclean-generic distclean-libtool \
+	distclean-tags distdir dvi dvi-am html html-am info info-am \
+	install install-am install-data install-data-am install-dvi \
+	install-dvi-am install-exec install-exec-am install-html \
+	install-html-am install-info install-info-am install-man \
+	install-pdf install-pdf-am install-ps install-ps-am \
+	install-strip installcheck installcheck-am installdirs \
+	installdirs-am maintainer-clean maintainer-clean-generic \
+	mostlyclean mostlyclean-compile mostlyclean-generic \
+	mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \
+	uninstall-am
 
 
 check-local: $(check_PROGRAMS)
diff --git a/tests/bindings/Makefile.in b/tests/bindings/Makefile.in
index 3b70fb2..540090e 100644
--- a/tests/bindings/Makefile.in
+++ b/tests/bindings/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.14.1 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
-# Foundation, Inc.
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -15,23 +14,51 @@
 
 @SET_MAKE@
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -51,7 +78,8 @@ POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
 subdir = tests/bindings
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+	$(top_srcdir)/config/test-driver
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/m4/gtk-doc.m4 \
 	$(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
@@ -63,12 +91,18 @@ mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
 CONFIG_CLEAN_VPATH_FILES =
+AM_V_P = $(am__v_P_ at AM_V@)
+am__v_P_ = $(am__v_P_ at AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
 AM_V_GEN = $(am__v_GEN_ at AM_V@)
 am__v_GEN_ = $(am__v_GEN_ at AM_DEFAULT_V@)
-am__v_GEN_0 = @echo "  GEN   " $@;
+am__v_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
 AM_V_at = $(am__v_at_ at AM_V@)
 am__v_at_ = $(am__v_at_ at AM_DEFAULT_V@)
 am__v_at_0 = @
+am__v_at_1 = 
 SOURCES =
 DIST_SOURCES =
 am__can_run_installinfo = \
@@ -76,8 +110,211 @@ am__can_run_installinfo = \
     n|no|NO) false;; \
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
-am__tty_colors = \
-red=; grn=; lgn=; blu=; std=
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+am__tty_colors_dummy = \
+  mgn= red= grn= lgn= blu= brg= std=; \
+  am__color_tests=no
+am__tty_colors = { \
+  $(am__tty_colors_dummy); \
+  if test "X$(AM_COLOR_TESTS)" = Xno; then \
+    am__color_tests=no; \
+  elif test "X$(AM_COLOR_TESTS)" = Xalways; then \
+    am__color_tests=yes; \
+  elif test "X$$TERM" != Xdumb && { test -t 1; } 2>/dev/null; then \
+    am__color_tests=yes; \
+  fi; \
+  if test $$am__color_tests = yes; then \
+    red=''; \
+    grn=''; \
+    lgn=''; \
+    blu=''; \
+    mgn=''; \
+    brg=''; \
+    std=''; \
+  fi; \
+}
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+    $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+    *) f=$$p;; \
+  esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+  srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+  for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+  for p in $$list; do echo "$$p $$p"; done | \
+  sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+  $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+    if (++n[$$2] == $(am__install_max)) \
+      { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+    END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+  sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+  sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+  test -z "$$files" \
+    || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+    || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+         $(am__cd) "$$dir" && rm -f $$files; }; \
+  }
+am__recheck_rx = ^[ 	]*:recheck:[ 	]*
+am__global_test_result_rx = ^[ 	]*:global-test-result:[ 	]*
+am__copy_in_global_log_rx = ^[ 	]*:copy-in-global-log:[ 	]*
+# A command that, given a newline-separated list of test names on the
+# standard input, print the name of the tests that are to be re-run
+# upon "make recheck".
+am__list_recheck_tests = $(AWK) '{ \
+  recheck = 1; \
+  while ((rc = (getline line < ($$0 ".trs"))) != 0) \
+    { \
+      if (rc < 0) \
+        { \
+          if ((getline line2 < ($$0 ".log")) < 0) \
+	    recheck = 0; \
+          break; \
+        } \
+      else if (line ~ /$(am__recheck_rx)[nN][Oo]/) \
+        { \
+          recheck = 0; \
+          break; \
+        } \
+      else if (line ~ /$(am__recheck_rx)[yY][eE][sS]/) \
+        { \
+          break; \
+        } \
+    }; \
+  if (recheck) \
+    print $$0; \
+  close ($$0 ".trs"); \
+  close ($$0 ".log"); \
+}'
+# A command that, given a newline-separated list of test names on the
+# standard input, create the global log from their .trs and .log files.
+am__create_global_log = $(AWK) ' \
+function fatal(msg) \
+{ \
+  print "fatal: making $@: " msg | "cat >&2"; \
+  exit 1; \
+} \
+function rst_section(header) \
+{ \
+  print header; \
+  len = length(header); \
+  for (i = 1; i <= len; i = i + 1) \
+    printf "="; \
+  printf "\n\n"; \
+} \
+{ \
+  copy_in_global_log = 1; \
+  global_test_result = "RUN"; \
+  while ((rc = (getline line < ($$0 ".trs"))) != 0) \
+    { \
+      if (rc < 0) \
+         fatal("failed to read from " $$0 ".trs"); \
+      if (line ~ /$(am__global_test_result_rx)/) \
+        { \
+          sub("$(am__global_test_result_rx)", "", line); \
+          sub("[ 	]*$$", "", line); \
+          global_test_result = line; \
+        } \
+      else if (line ~ /$(am__copy_in_global_log_rx)[nN][oO]/) \
+        copy_in_global_log = 0; \
+    }; \
+  if (copy_in_global_log) \
+    { \
+      rst_section(global_test_result ": " $$0); \
+      while ((rc = (getline line < ($$0 ".log"))) != 0) \
+      { \
+        if (rc < 0) \
+          fatal("failed to read from " $$0 ".log"); \
+        print line; \
+      }; \
+      printf "\n"; \
+    }; \
+  close ($$0 ".trs"); \
+  close ($$0 ".log"); \
+}'
+# Restructured Text title.
+am__rst_title = { sed 's/.*/   &   /;h;s/./=/g;p;x;s/ *$$//;p;g' && echo; }
+# Solaris 10 'make', and several other traditional 'make' implementations,
+# pass "-e" to $(SHELL), and POSIX 2008 even requires this.  Work around it
+# by disabling -e (using the XSI extension "set +e") if it's set.
+am__sh_e_setup = case $$- in *e*) set +e;; esac
+# Default flags passed to test drivers.
+am__common_driver_flags = \
+  --color-tests "$$am__color_tests" \
+  --enable-hard-errors "$$am__enable_hard_errors" \
+  --expect-failure "$$am__expect_failure"
+# To be inserted before the command running the test.  Creates the
+# directory for the log if needed.  Stores in $dir the directory
+# containing $f, in $tst the test, in $log the log.  Executes the
+# developer- defined test setup AM_TESTS_ENVIRONMENT (if any), and
+# passes TESTS_ENVIRONMENT.  Set up options for the wrapper that
+# will run the test scripts (or their associated LOG_COMPILER, if
+# thy have one).
+am__check_pre = \
+$(am__sh_e_setup);					\
+$(am__vpath_adj_setup) $(am__vpath_adj)			\
+$(am__tty_colors);					\
+srcdir=$(srcdir); export srcdir;			\
+case "$@" in						\
+  */*) am__odir=`echo "./$@" | sed 's|/[^/]*$$||'`;;	\
+    *) am__odir=.;; 					\
+esac;							\
+test "x$$am__odir" = x"." || test -d "$$am__odir" 	\
+  || $(MKDIR_P) "$$am__odir" || exit $$?;		\
+if test -f "./$$f"; then dir=./;			\
+elif test -f "$$f"; then dir=;				\
+else dir="$(srcdir)/"; fi;				\
+tst=$$dir$$f; log='$@'; 				\
+if test -n '$(DISABLE_HARD_ERRORS)'; then		\
+  am__enable_hard_errors=no; 				\
+else							\
+  am__enable_hard_errors=yes; 				\
+fi; 							\
+case " $(XFAIL_TESTS) " in				\
+  *[\ \	]$$f[\ \	]* | *[\ \	]$$dir$$f[\ \	]*) \
+    am__expect_failure=yes;;				\
+  *)							\
+    am__expect_failure=no;;				\
+esac; 							\
+$(AM_TESTS_ENVIRONMENT) $(TESTS_ENVIRONMENT)
+# A shell command to get the names of the tests scripts with any registered
+# extension removed (i.e., equivalently, the names of the test logs, with
+# the '.log' extension removed).  The result is saved in the shell variable
+# '$bases'.  This honors runtime overriding of TESTS and TEST_LOGS.  Sadly,
+# we cannot use something simpler, involving e.g., "$(TEST_LOGS:.log=)",
+# since that might cause problem with VPATH rewrites for suffix-less tests.
+# See also 'test-harness-vpath-rewrite.sh' and 'test-trs-basic.sh'.
+am__set_TESTS_bases = \
+  bases='$(TEST_LOGS)'; \
+  bases=`for i in $$bases; do echo $$i; done | sed 's/\.log$$//'`; \
+  bases=`echo $$bases`
+RECHECK_LOGS = $(TEST_LOGS)
+AM_RECURSIVE_TARGETS = check recheck
+TEST_SUITE_LOG = test-suite.log
+TEST_EXTENSIONS = @EXEEXT@ .test
+LOG_DRIVER = $(SHELL) $(top_srcdir)/config/test-driver
+LOG_COMPILE = $(LOG_COMPILER) $(AM_LOG_FLAGS) $(LOG_FLAGS)
+am__set_b = \
+  case '$@' in \
+    */*) \
+      case '$*' in \
+        */*) b='$*';; \
+          *) b=`echo '$@' | sed 's/\.log$$//'`; \
+       esac;; \
+    *) \
+      b='$*';; \
+  esac
+am__test_logs1 = $(TESTS:=.log)
+am__test_logs2 = $(am__test_logs1:@EXEEXT at .log=.log)
+TEST_LOGS = $(am__test_logs2:.test.log=.log)
+TEST_LOG_DRIVER = $(SHELL) $(top_srcdir)/config/test-driver
+TEST_LOG_COMPILE = $(TEST_LOG_COMPILER) $(AM_TEST_LOG_FLAGS) \
+	$(TEST_LOG_FLAGS)
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ALLOCA = @ALLOCA@
@@ -130,6 +367,7 @@ GSL_CFLAGS = @GSL_CFLAGS@
 GSL_CONFIG = @GSL_CONFIG@
 GSL_LIBS = @GSL_LIBS@
 GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_CHECK_PATH = @GTKDOC_CHECK_PATH@
 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
 GTKDOC_MKPDF = @GTKDOC_MKPDF@
@@ -254,6 +492,7 @@ CLEANFILES = trajectories.pdf
 all: all-am
 
 .SUFFIXES:
+.SUFFIXES: .log .test .test$(EXEEXT) .trs
 $(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
 	@for dep in $?; do \
 	  case '$(am__configure_deps)' in \
@@ -290,105 +529,182 @@ mostlyclean-libtool:
 
 clean-libtool:
 	-rm -rf .libs _libs
-tags: TAGS
-TAGS:
-
-ctags: CTAGS
-CTAGS:
-
-
-check-TESTS: $(TESTS)
-	@failed=0; all=0; xfail=0; xpass=0; skip=0; \
-	srcdir=$(srcdir); export srcdir; \
-	list=' $(TESTS) '; \
-	$(am__tty_colors); \
-	if test -n "$$list"; then \
-	  for tst in $$list; do \
-	    if test -f ./$$tst; then dir=./; \
-	    elif test -f $$tst; then dir=; \
-	    else dir="$(srcdir)/"; fi; \
-	    if $(TESTS_ENVIRONMENT) $${dir}$$tst; then \
-	      all=`expr $$all + 1`; \
-	      case " $(XFAIL_TESTS) " in \
-	      *[\ \	]$$tst[\ \	]*) \
-		xpass=`expr $$xpass + 1`; \
-		failed=`expr $$failed + 1`; \
-		col=$$red; res=XPASS; \
-	      ;; \
-	      *) \
-		col=$$grn; res=PASS; \
-	      ;; \
-	      esac; \
-	    elif test $$? -ne 77; then \
-	      all=`expr $$all + 1`; \
-	      case " $(XFAIL_TESTS) " in \
-	      *[\ \	]$$tst[\ \	]*) \
-		xfail=`expr $$xfail + 1`; \
-		col=$$lgn; res=XFAIL; \
-	      ;; \
-	      *) \
-		failed=`expr $$failed + 1`; \
-		col=$$red; res=FAIL; \
-	      ;; \
-	      esac; \
-	    else \
-	      skip=`expr $$skip + 1`; \
-	      col=$$blu; res=SKIP; \
-	    fi; \
-	    echo "$${col}$$res$${std}: $$tst"; \
-	  done; \
-	  if test "$$all" -eq 1; then \
-	    tests="test"; \
-	    All=""; \
-	  else \
-	    tests="tests"; \
-	    All="All "; \
+tags TAGS:
+
+ctags CTAGS:
+
+cscope cscopelist:
+
+
+# Recover from deleted '.trs' file; this should ensure that
+# "rm -f foo.log; make foo.trs" re-run 'foo.test', and re-create
+# both 'foo.log' and 'foo.trs'.  Break the recipe in two subshells
+# to avoid problems with "make -n".
+.log.trs:
+	rm -f $< $@
+	$(MAKE) $(AM_MAKEFLAGS) $<
+
+# Leading 'am--fnord' is there to ensure the list of targets does not
+# expand to empty, as could happen e.g. with make check TESTS=''.
+am--fnord $(TEST_LOGS) $(TEST_LOGS:.log=.trs): $(am__force_recheck)
+am--force-recheck:
+	@:
+
+$(TEST_SUITE_LOG): $(TEST_LOGS)
+	@$(am__set_TESTS_bases); \
+	am__f_ok () { test -f "$$1" && test -r "$$1"; }; \
+	redo_bases=`for i in $$bases; do \
+	              am__f_ok $$i.trs && am__f_ok $$i.log || echo $$i; \
+	            done`; \
+	if test -n "$$redo_bases"; then \
+	  redo_logs=`for i in $$redo_bases; do echo $$i.log; done`; \
+	  redo_results=`for i in $$redo_bases; do echo $$i.trs; done`; \
+	  if $(am__make_dryrun); then :; else \
+	    rm -f $$redo_logs && rm -f $$redo_results || exit 1; \
 	  fi; \
-	  if test "$$failed" -eq 0; then \
-	    if test "$$xfail" -eq 0; then \
-	      banner="$$All$$all $$tests passed"; \
-	    else \
-	      if test "$$xfail" -eq 1; then failures=failure; else failures=failures; fi; \
-	      banner="$$All$$all $$tests behaved as expected ($$xfail expected $$failures)"; \
-	    fi; \
-	  else \
-	    if test "$$xpass" -eq 0; then \
-	      banner="$$failed of $$all $$tests failed"; \
+	fi; \
+	if test -n "$$am__remaking_logs"; then \
+	  echo "fatal: making $(TEST_SUITE_LOG): possible infinite" \
+	       "recursion detected" >&2; \
+	else \
+	  am__remaking_logs=yes $(MAKE) $(AM_MAKEFLAGS) $$redo_logs; \
+	fi; \
+	if $(am__make_dryrun); then :; else \
+	  st=0;  \
+	  errmsg="fatal: making $(TEST_SUITE_LOG): failed to create"; \
+	  for i in $$redo_bases; do \
+	    test -f $$i.trs && test -r $$i.trs \
+	      || { echo "$$errmsg $$i.trs" >&2; st=1; }; \
+	    test -f $$i.log && test -r $$i.log \
+	      || { echo "$$errmsg $$i.log" >&2; st=1; }; \
+	  done; \
+	  test $$st -eq 0 || exit 1; \
+	fi
+	@$(am__sh_e_setup); $(am__tty_colors); $(am__set_TESTS_bases); \
+	ws='[ 	]'; \
+	results=`for b in $$bases; do echo $$b.trs; done`; \
+	test -n "$$results" || results=/dev/null; \
+	all=`  grep "^$$ws*:test-result:"           $$results | wc -l`; \
+	pass=` grep "^$$ws*:test-result:$$ws*PASS"  $$results | wc -l`; \
+	fail=` grep "^$$ws*:test-result:$$ws*FAIL"  $$results | wc -l`; \
+	skip=` grep "^$$ws*:test-result:$$ws*SKIP"  $$results | wc -l`; \
+	xfail=`grep "^$$ws*:test-result:$$ws*XFAIL" $$results | wc -l`; \
+	xpass=`grep "^$$ws*:test-result:$$ws*XPASS" $$results | wc -l`; \
+	error=`grep "^$$ws*:test-result:$$ws*ERROR" $$results | wc -l`; \
+	if test `expr $$fail + $$xpass + $$error` -eq 0; then \
+	  success=true; \
+	else \
+	  success=false; \
+	fi; \
+	br='==================='; br=$$br$$br$$br$$br; \
+	result_count () \
+	{ \
+	    if test x"$$1" = x"--maybe-color"; then \
+	      maybe_colorize=yes; \
+	    elif test x"$$1" = x"--no-color"; then \
+	      maybe_colorize=no; \
 	    else \
-	      if test "$$xpass" -eq 1; then passes=pass; else passes=passes; fi; \
-	      banner="$$failed of $$all $$tests did not behave as expected ($$xpass unexpected $$passes)"; \
+	      echo "$@: invalid 'result_count' usage" >&2; exit 4; \
 	    fi; \
-	  fi; \
-	  dashes="$$banner"; \
-	  skipped=""; \
-	  if test "$$skip" -ne 0; then \
-	    if test "$$skip" -eq 1; then \
-	      skipped="($$skip test was not run)"; \
+	    shift; \
+	    desc=$$1 count=$$2; \
+	    if test $$maybe_colorize = yes && test $$count -gt 0; then \
+	      color_start=$$3 color_end=$$std; \
 	    else \
-	      skipped="($$skip tests were not run)"; \
+	      color_start= color_end=; \
 	    fi; \
-	    test `echo "$$skipped" | wc -c` -le `echo "$$banner" | wc -c` || \
-	      dashes="$$skipped"; \
-	  fi; \
-	  report=""; \
-	  if test "$$failed" -ne 0 && test -n "$(PACKAGE_BUGREPORT)"; then \
-	    report="Please report to $(PACKAGE_BUGREPORT)"; \
-	    test `echo "$$report" | wc -c` -le `echo "$$banner" | wc -c` || \
-	      dashes="$$report"; \
-	  fi; \
-	  dashes=`echo "$$dashes" | sed s/./=/g`; \
-	  if test "$$failed" -eq 0; then \
-	    col="$$grn"; \
-	  else \
-	    col="$$red"; \
-	  fi; \
-	  echo "$${col}$$dashes$${std}"; \
-	  echo "$${col}$$banner$${std}"; \
-	  test -z "$$skipped" || echo "$${col}$$skipped$${std}"; \
-	  test -z "$$report" || echo "$${col}$$report$${std}"; \
-	  echo "$${col}$$dashes$${std}"; \
-	  test "$$failed" -eq 0; \
-	else :; fi
+	    echo "$${color_start}# $$desc $$count$${color_end}"; \
+	}; \
+	create_testsuite_report () \
+	{ \
+	  result_count $$1 "TOTAL:" $$all   "$$brg"; \
+	  result_count $$1 "PASS: " $$pass  "$$grn"; \
+	  result_count $$1 "SKIP: " $$skip  "$$blu"; \
+	  result_count $$1 "XFAIL:" $$xfail "$$lgn"; \
+	  result_count $$1 "FAIL: " $$fail  "$$red"; \
+	  result_count $$1 "XPASS:" $$xpass "$$red"; \
+	  result_count $$1 "ERROR:" $$error "$$mgn"; \
+	}; \
+	{								\
+	  echo "$(PACKAGE_STRING): $(subdir)/$(TEST_SUITE_LOG)" |	\
+	    $(am__rst_title);						\
+	  create_testsuite_report --no-color;				\
+	  echo;								\
+	  echo ".. contents:: :depth: 2";				\
+	  echo;								\
+	  for b in $$bases; do echo $$b; done				\
+	    | $(am__create_global_log);					\
+	} >$(TEST_SUITE_LOG).tmp || exit 1;				\
+	mv $(TEST_SUITE_LOG).tmp $(TEST_SUITE_LOG);			\
+	if $$success; then						\
+	  col="$$grn";							\
+	 else								\
+	  col="$$red";							\
+	  test x"$$VERBOSE" = x || cat $(TEST_SUITE_LOG);		\
+	fi;								\
+	echo "$${col}$$br$${std}"; 					\
+	echo "$${col}Testsuite summary for $(PACKAGE_STRING)$${std}";	\
+	echo "$${col}$$br$${std}"; 					\
+	create_testsuite_report --maybe-color;				\
+	echo "$$col$$br$$std";						\
+	if $$success; then :; else					\
+	  echo "$${col}See $(subdir)/$(TEST_SUITE_LOG)$${std}";		\
+	  if test -n "$(PACKAGE_BUGREPORT)"; then			\
+	    echo "$${col}Please report to $(PACKAGE_BUGREPORT)$${std}";	\
+	  fi;								\
+	  echo "$$col$$br$$std";					\
+	fi;								\
+	$$success || exit 1
+
+check-TESTS:
+	@list='$(RECHECK_LOGS)';           test -z "$$list" || rm -f $$list
+	@list='$(RECHECK_LOGS:.log=.trs)'; test -z "$$list" || rm -f $$list
+	@test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
+	@set +e; $(am__set_TESTS_bases); \
+	log_list=`for i in $$bases; do echo $$i.log; done`; \
+	trs_list=`for i in $$bases; do echo $$i.trs; done`; \
+	log_list=`echo $$log_list`; trs_list=`echo $$trs_list`; \
+	$(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) TEST_LOGS="$$log_list"; \
+	exit $$?;
+recheck: all 
+	@test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
+	@set +e; $(am__set_TESTS_bases); \
+	bases=`for i in $$bases; do echo $$i; done \
+	         | $(am__list_recheck_tests)` || exit 1; \
+	log_list=`for i in $$bases; do echo $$i.log; done`; \
+	log_list=`echo $$log_list`; \
+	$(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) \
+	        am__force_recheck=am--force-recheck \
+	        TEST_LOGS="$$log_list"; \
+	exit $$?
+python.py.log: python.py
+	@p='python.py'; \
+	b='python.py'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+trajectory.py.log: trajectory.py
+	@p='trajectory.py'; \
+	b='trajectory.py'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+.test.log:
+	@p='$<'; \
+	$(am__set_b); \
+	$(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+ at am__EXEEXT_TRUE@.test$(EXEEXT).log:
+ at am__EXEEXT_TRUE@	@p='$<'; \
+ at am__EXEEXT_TRUE@	$(am__set_b); \
+ at am__EXEEXT_TRUE@	$(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \
+ at am__EXEEXT_TRUE@	--log-file $$b.log --trs-file $$b.trs \
+ at am__EXEEXT_TRUE@	$(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \
+ at am__EXEEXT_TRUE@	"$$tst" $(AM_TESTS_FD_REDIRECT)
 
 distdir: $(DISTFILES)
 	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
@@ -445,6 +761,9 @@ install-strip:
 	    "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
 	fi
 mostlyclean-generic:
+	-test -z "$(TEST_LOGS)" || rm -f $(TEST_LOGS)
+	-test -z "$(TEST_LOGS:.log=.trs)" || rm -f $(TEST_LOGS:.log=.trs)
+	-test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
 
 clean-generic:
 	-test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
@@ -525,15 +844,16 @@ uninstall-am:
 .MAKE: check-am install-am install-strip
 
 .PHONY: all all-am check check-TESTS check-am clean clean-generic \
-	clean-libtool distclean distclean-generic distclean-libtool \
-	distdir dvi dvi-am html html-am info info-am install \
-	install-am install-data install-data-am install-dvi \
-	install-dvi-am install-exec install-exec-am install-html \
-	install-html-am install-info install-info-am install-man \
-	install-pdf install-pdf-am install-ps install-ps-am \
-	install-strip installcheck installcheck-am installdirs \
-	maintainer-clean maintainer-clean-generic mostlyclean \
-	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
+	clean-libtool cscopelist-am ctags-am distclean \
+	distclean-generic distclean-libtool distdir dvi dvi-am html \
+	html-am info info-am install install-am install-data \
+	install-data-am install-dvi install-dvi-am install-exec \
+	install-exec-am install-html install-html-am install-info \
+	install-info-am install-man install-pdf install-pdf-am \
+	install-ps install-ps-am install-strip installcheck \
+	installcheck-am installdirs maintainer-clean \
+	maintainer-clean-generic mostlyclean mostlyclean-generic \
+	mostlyclean-libtool pdf pdf-am ps ps-am recheck tags-am \
 	uninstall uninstall-am
 
 
diff --git a/tests/bindings/python.py b/tests/bindings/python.py
index e76dec3..a7632d5 100755
--- a/tests/bindings/python.py
+++ b/tests/bindings/python.py
@@ -213,7 +213,7 @@ class TestAPI(unittest.TestCase):
         for engine in engines.engines_get():
             capabilities = engine.capabilities_get()
             self.assertTrue(capabilities & Hkl.EngineCapabilities.READABLE)
-            if engine.name_get() != "incidence":
+            if engine.name_get() not in ["incidence", "emergence"]:
                 self.assertTrue(capabilities & Hkl.EngineCapabilities.WRITABLE)
             if engine.name_get() == "psi":
                 self.assertTrue(capabilities & Hkl.EngineCapabilities.INITIALIZABLE)
diff --git a/tests/hkl-pseudoaxis-t.c b/tests/hkl-pseudoaxis-t.c
index 1cfe369..eb679c2 100644
--- a/tests/hkl-pseudoaxis-t.c
+++ b/tests/hkl-pseudoaxis-t.c
@@ -275,8 +275,9 @@ static int _capabilities(HklEngine *engine, HklEngineList *engine_list, unsigned
 	/* all motors must have the read capabilities */
 	res &= DIAG((capabilities & HKL_ENGINE_CAPABILITIES_READABLE) != 0);
 
-	/* all engines except the readonly (incidence) are writable */
-	if(strcmp("incidence", hkl_engine_name_get(engine)))
+	/* all engines except the readonly (incidence, emergence) are writable */
+	if(strcmp("incidence", hkl_engine_name_get(engine))
+	   && strcmp("emergence", hkl_engine_name_get(engine)))
 		res &= DIAG((capabilities & HKL_ENGINE_CAPABILITIES_WRITABLE) != 0);
 
 	/* all psi engines must be initialisable */
diff --git a/tests/tap/Makefile.in b/tests/tap/Makefile.in
index 393e7e8..e20716f 100644
--- a/tests/tap/Makefile.in
+++ b/tests/tap/Makefile.in
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.14.1 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
-# Foundation, Inc.
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -15,23 +14,51 @@
 
 @SET_MAKE@
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
+    esac; \
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -51,7 +78,8 @@ POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
 subdir = tests/tap
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+	$(top_srcdir)/config/depcomp
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/m4/gtk-doc.m4 \
 	$(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
@@ -66,15 +94,25 @@ CONFIG_CLEAN_VPATH_FILES =
 ARFLAGS = cru
 AM_V_AR = $(am__v_AR_ at AM_V@)
 am__v_AR_ = $(am__v_AR_ at AM_DEFAULT_V@)
-am__v_AR_0 = @echo "  AR    " $@;
-AM_V_at = $(am__v_at_ at AM_V@)
-am__v_at_ = $(am__v_at_ at AM_DEFAULT_V@)
-am__v_at_0 = @
+am__v_AR_0 = @echo "  AR      " $@;
+am__v_AR_1 = 
 libtap_a_AR = $(AR) $(ARFLAGS)
 libtap_a_LIBADD =
 am_libtap_a_OBJECTS = basic.$(OBJEXT) float.$(OBJEXT) \
 	hkl-tap.$(OBJEXT)
 libtap_a_OBJECTS = $(am_libtap_a_OBJECTS)
+AM_V_P = $(am__v_P_ at AM_V@)
+am__v_P_ = $(am__v_P_ at AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_ at AM_V@)
+am__v_GEN_ = $(am__v_GEN_ at AM_DEFAULT_V@)
+am__v_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
+AM_V_at = $(am__v_at_ at AM_V@)
+am__v_at_ = $(am__v_at_ at AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 DEFAULT_INCLUDES = -I. at am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/config/depcomp
 am__depfiles_maybe = depfiles
@@ -84,23 +122,23 @@ COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
 AM_V_lt = $(am__v_lt_ at AM_V@)
 am__v_lt_ = $(am__v_lt_ at AM_DEFAULT_V@)
 am__v_lt_0 = --silent
+am__v_lt_1 = 
 LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
 	$(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
 	$(AM_CFLAGS) $(CFLAGS)
 AM_V_CC = $(am__v_CC_ at AM_V@)
 am__v_CC_ = $(am__v_CC_ at AM_DEFAULT_V@)
-am__v_CC_0 = @echo "  CC    " $@;
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
 CCLD = $(CC)
 LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
 	$(AM_LDFLAGS) $(LDFLAGS) -o $@
 AM_V_CCLD = $(am__v_CCLD_ at AM_V@)
 am__v_CCLD_ = $(am__v_CCLD_ at AM_DEFAULT_V@)
-am__v_CCLD_0 = @echo "  CCLD  " $@;
-AM_V_GEN = $(am__v_GEN_ at AM_V@)
-am__v_GEN_ = $(am__v_GEN_ at AM_DEFAULT_V@)
-am__v_GEN_0 = @echo "  GEN   " $@;
+am__v_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
 SOURCES = $(libtap_a_SOURCES)
 DIST_SOURCES = $(libtap_a_SOURCES)
 am__can_run_installinfo = \
@@ -108,6 +146,23 @@ am__can_run_installinfo = \
     n|no|NO) false;; \
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -162,6 +217,7 @@ GSL_CFLAGS = @GSL_CFLAGS@
 GSL_CONFIG = @GSL_CONFIG@
 GSL_LIBS = @GSL_LIBS@
 GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_CHECK_PATH = @GTKDOC_CHECK_PATH@
 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
 GTKDOC_MKPDF = @GTKDOC_MKPDF@
@@ -332,6 +388,7 @@ $(am__aclocal_m4_deps):
 
 clean-checkLIBRARIES:
 	-test -z "$(check_LIBRARIES)" || rm -f $(check_LIBRARIES)
+
 libtap.a: $(libtap_a_OBJECTS) $(libtap_a_DEPENDENCIES) $(EXTRA_libtap_a_DEPENDENCIES) 
 	$(AM_V_at)-rm -f libtap.a
 	$(AM_V_AR)$(libtap_a_AR) libtap.a $(libtap_a_OBJECTS) $(libtap_a_LIBADD)
@@ -377,26 +434,15 @@ mostlyclean-libtool:
 clean-libtool:
 	-rm -rf .libs _libs
 
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
-	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	mkid -fID $$unique
-tags: TAGS
-
-TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	set x; \
 	here=`pwd`; \
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -408,15 +454,11 @@ TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 	      $$unique; \
 	  fi; \
 	fi
-ctags: CTAGS
-CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -425,6 +467,21 @@ GTAGS:
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -567,9 +624,9 @@ uninstall-am:
 
 .MAKE: check-am install-am install-strip
 
-.PHONY: CTAGS GTAGS all all-am check check-am clean \
-	clean-checkLIBRARIES clean-generic clean-libtool ctags \
-	distclean distclean-compile distclean-generic \
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean \
+	clean-checkLIBRARIES clean-generic clean-libtool cscopelist-am \
+	ctags ctags-am distclean distclean-compile distclean-generic \
 	distclean-libtool distclean-tags distdir dvi dvi-am html \
 	html-am info info-am install install-am install-data \
 	install-data-am install-dvi install-dvi-am install-exec \
@@ -579,7 +636,7 @@ uninstall-am:
 	installcheck-am installdirs maintainer-clean \
 	maintainer-clean-generic mostlyclean mostlyclean-compile \
 	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
-	tags uninstall uninstall-am
+	tags tags-am uninstall uninstall-am
 
 
 # Support for GNU Flymake, in Emacs.

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



More information about the debian-science-commits mailing list