[libvigraimpex] 01/06: Imported Upstream version 1.10.0+dfsg

Daniel Stender danstender-guest at moszumanska.debian.org
Wed Apr 29 15:12:00 UTC 2015


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

danstender-guest pushed a commit to branch master
in repository libvigraimpex.

commit bc0329ba9c7dedcbce091f3e8981f1a739ea1810
Author: Daniel Stender <debian at danielstender.com>
Date:   Wed Apr 29 15:57:40 2015 +0200

    Imported Upstream version 1.10.0+dfsg
---
 .gitignore                                         |   35 +
 .travis.yml                                        |   15 +
 debian/Makefile                                    |   18 -
 debian/NEWS                                        |   11 -
 debian/README.Debian                               |    7 -
 debian/changelog                                   |  439 ------
 debian/clean                                       |    4 -
 debian/compat                                      |    1 -
 debian/control                                     |  125 --
 debian/convert-changelog.sh                        |   20 -
 debian/copyright                                   |   59 -
 debian/libvigraimpex-dev.dirs                      |    2 -
 debian/libvigraimpex-dev.docs                      |    1 -
 debian/libvigraimpex-dev.examples                  |    5 -
 debian/libvigraimpex-dev.install                   |    3 -
 debian/libvigraimpex-dev.manpages                  |    1 -
 debian/libvigraimpex-doc.doc-base                  |    8 -
 debian/libvigraimpex-doc.docs                      |    1 -
 debian/libvigraimpex-doc.links                     |    1 -
 debian/libvigraimpex5.dirs                         |    1 -
 debian/libvigraimpex5.docs                         |    1 -
 debian/libvigraimpex5.install                      |    1 -
 ...-noise-variance-clustering-vigranumpy-test.diff |   19 -
 debian/patches/docsrc-out-of-source.diff           |   16 -
 debian/patches/docsrc-paths.diff                   |   68 -
 debian/patches/removed-static-docs.diff            |   11 -
 debian/patches/series                              |    5 -
 debian/patches/vigra-config-docdir.diff            |   12 -
 debian/python-vigra-doc.doc-base                   |   12 -
 debian/python-vigra-doc.docs                       |    1 -
 debian/python-vigra-doc.links                      |    4 -
 debian/python-vigra.install                        |    1 -
 debian/rules                                       |  200 ---
 debian/source/format                               |    1 -
 debian/vigra-config.1                              |   28 -
 debian/watch                                       |    3 -
 doc/vigra/LICENSE.txt                              |   25 +
 doc/vigra/dissolved_color.gif                      |  Bin 0 -> 26116 bytes
 doc/vigra/documents/bullet.gif                     |  Bin 0 -> 84 bytes
 doc/vigra/documents/pfeil.gif                      |  Bin 0 -> 82 bytes
 doc/vigra/documents/pfeilGross.gif                 |  Bin 0 -> 640 bytes
 doc/vigra/documents/tutorial_reference.pdf         |  Bin 0 -> 107966 bytes
 doc/vigra/documents/vigra.gif                      |  Bin 0 -> 10251 bytes
 doc/vigra/dynsections.js                           |   97 ++
 doc/vigra/formula.repository                       |  139 ++
 doc/vigra/jquery.js                                |    8 +
 doc/vigra/lenna_color.gif                          |  Bin 0 -> 197227 bytes
 doc/vigra/lenna_color_small.gif                    |  Bin 0 -> 26116 bytes
 doc/vigra/lenna_composite_color.gif                |  Bin 0 -> 102075 bytes
 doc/vigra/lenna_gray.gif                           |  Bin 0 -> 234921 bytes
 doc/vigra/lenna_inverted.gif                       |  Bin 0 -> 26116 bytes
 doc/vigra/lenna_mirror_horizontal.gif              |  Bin 0 -> 26116 bytes
 doc/vigra/lenna_mirror_vertical.gif                |  Bin 0 -> 26116 bytes
 doc/vigra/lenna_small.gif                          |  Bin 0 -> 26116 bytes
 doc/vigra/lenna_smoothed.gif                       |  Bin 0 -> 26116 bytes
 doc/vigra/lenna_stripes.gif                        |  Bin 0 -> 26116 bytes
 doc/vigra/lenna_sub.gif                            |  Bin 0 -> 7253 bytes
 doc/vigra/lenna_transposed_major.gif               |  Bin 0 -> 26116 bytes
 doc/vigra/lenna_transposed_minor.gif               |  Bin 0 -> 26116 bytes
 doc/vigra/oi_small.jpg                             |  Bin 0 -> 8596 bytes
 doc/vigra/tabs.css                                 |   60 +
 doc/vigra/testimage.gif                            |  Bin 0 -> 29823 bytes
 doc/vigra/testimage.jpg                            |  Bin 0 -> 8522 bytes
 .../docsrc/_static => doc/vigra}/vigra-icon.ico    |  Bin
 doc/vigra/vigra.css                                |  457 ++++++
 doc/vigra/vigra_1_8_2.css                          | 1622 ++++++++++++++++++++
 docsrc/documents/bullet.gif                        |  Bin 0 -> 84 bytes
 docsrc/documents/pfeil.gif                         |  Bin 0 -> 82 bytes
 docsrc/documents/pfeilGross.gif                    |  Bin 0 -> 640 bytes
 docsrc/documents/vigra.gif                         |  Bin 0 -> 10251 bytes
 vigranumpy/docsrc/_static/basic.css                |  413 -----
 vigranumpy/docsrc/_static/default.css              |  210 ---
 vigranumpy/docsrc/_static/doctools.js              |  232 ---
 vigranumpy/docsrc/_static/file.png                 |  Bin 392 -> 0 bytes
 vigranumpy/docsrc/_static/jquery.js                |   32 -
 vigranumpy/docsrc/_static/minus.png                |  Bin 199 -> 0 bytes
 vigranumpy/docsrc/_static/plus.png                 |  Bin 199 -> 0 bytes
 vigranumpy/docsrc/_static/pygments.css             |   61 -
 vigranumpy/docsrc/_static/searchtools.js           |  467 ------
 79 files changed, 2458 insertions(+), 2505 deletions(-)

diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..8e14e2c
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,35 @@
+
+/lib/
+/bin/
+/build*/
+/doc/
+/test/*/test
+/test/testSuccess
+/private/
+/vigranumpy/private/
+/vigranumpy/lib/__version__.py
+CMakeFiles/
+Release/
+Debug/
+*.py[co]
+*~
+*.mex
+*.mexw32
+*.mexglx
+*.bak
+*.obj
+.libs
+.deps
+Makefile
+*.exe
+*.ilk
+*.pdb
+*.exp
+*.lib
+*.dll
+*.ncb
+*.so
+*.[do]
+*.l[doa]
+*.loT
+*.orig
\ No newline at end of file
diff --git a/.travis.yml b/.travis.yml
new file mode 100644
index 0000000..8d2b779
--- /dev/null
+++ b/.travis.yml
@@ -0,0 +1,15 @@
+language: python
+
+python:
+  - "2.7"
+
+before_script:
+  - sudo apt-get install --assume-yes libhdf5-serial-dev libboost-python-dev libjpeg-dev libtiff4-dev libpng12-dev libfftw3-dev cmake
+  - pip install nose
+  - pip install numpy
+   
+script:
+  - mkdir build && cd build
+  - cmake -DCMAKE_BUILD_TYPE=Release -DDEPENDENCY_SEARCH_PREFIX=$VIRTUAL_ENV -DAUTOBUILD_TESTS=1 -DAUTOEXEC_TESTS=0 -DVIGRANUMPY_LIBRARIES="/usr/lib/libpython2.7.so;/usr/lib/libboost_python.so" ..
+  - make
+  - make test
diff --git a/debian/Makefile b/debian/Makefile
deleted file mode 100644
index e98f990..0000000
--- a/debian/Makefile
+++ /dev/null
@@ -1,18 +0,0 @@
-CXXFLAGS = -g -O2 -Wall
-LDFLAGS = -lvigraimpex
-
-SOURCES = $(wildcard *.cxx)
-TARGETS = $(SOURCES:.cxx=)
-
-all: $(TARGETS)
-
-%.o: %.cxx
-	$(COMPILE.cc) -o $(@) $(<)
-
-$(TARGETS): %: %.o
-	$(LINK.cc) -o $(@) $(<)
-
-clean:
-	rm -f *.o $(TARGETS)
-
-# vim:ts=4 sw=4 noet
diff --git a/debian/NEWS b/debian/NEWS
deleted file mode 100644
index ae3b508..0000000
--- a/debian/NEWS
+++ /dev/null
@@ -1,11 +0,0 @@
-libvigraimpex (1.7.0+dfsg-3) unstable; urgency=low
-
-  VIGRA 1.7.0 introduces two backwards incompatible changes:
-
-  * Angle convention was modified from counter-clockwise to clockwise.
-
-  * symmetricEigensystem() sorts eigenvalues by decreasing value (was:
-    decreasing absolute values).
-
- -- Jakub Wilk <jwilk at debian.org>  Wed, 16 Jun 2010 01:12:04 +0200
-
diff --git a/debian/README.Debian b/debian/README.Debian
deleted file mode 100644
index 2a427ad..0000000
--- a/debian/README.Debian
+++ /dev/null
@@ -1,7 +0,0 @@
-vigra for Debian
-----------------
-
-To compile the examples, copy all from the directory examples/ to a
-place you have write permision, ungzip all files, and make.
-
- -- Alejandro Sierra <algsierra at gmail.com>, Sat,  4 Jun 2005 23:59:00 -0500
diff --git a/debian/changelog b/debian/changelog
deleted file mode 100644
index e8429fe..0000000
--- a/debian/changelog
+++ /dev/null
@@ -1,439 +0,0 @@
-libvigraimpex (1.10.0+dfsg-1) UNRELEASED; urgency=medium
-
-  * New upstream version (verify and refresh patches)
-    Soversion bumped from 4 to 5
-    Closes: #702447
-  * debian/watch: point to Github
-  * debian/copyright: Files-Excluded, removed get-orig-source.sh
-  * debian/control:
-     - Build-Depends: libtiff5-dev
-       Closes: #681077
-     - cme fix dpkg-control
-     - debhelper 9
-     - Debian Science team maintenance
-     - Fix Homepage
-
- -- Andreas Tille <tille at debian.org>  Wed, 12 Feb 2014 10:17:38 +0100
-
-libvigraimpex (1.9.0+dfsg-7) unstable; urgency=low
-
-  * QA upload.
-  * Make debian/rules work with both multiarch and non-multiarch
-    libboost-python. (This supersedes the change in
-    Ubuntu 1.9.0+dfsg-6ubuntu2.)
-
- -- Andreas Metzler <ametzler at debian.org>  Sat, 05 Oct 2013 13:45:19 +0200
-
-libvigraimpex (1.9.0+dfsg-6) unstable; urgency=low
-
-  * QA upload.
-  * Drop parallell build support.
-
- -- Andreas Metzler <ametzler at debian.org>  Fri, 05 Jul 2013 19:05:49 +0200
-
-libvigraimpex (1.9.0+dfsg-5) unstable; urgency=low
-
-  * Also append CPPFLAGS to CXXFLAGS.
-  * Increase minimum memory requirement for parallel build on buildd by factor
-    three since s390 exhausted virtual memory on parallel build.
-
- -- Andreas Metzler <ametzler at debian.org>  Thu, 04 Jul 2013 19:08:27 +0200
-
-libvigraimpex (1.9.0+dfsg-4) unstable; urgency=low
-
-  * QA upload.
-  * Switch back to tiff4, we do not want to start our own
-    mini-tiff-transition.
-  * Upload to unstable.
-
- -- Andreas Metzler <ametzler at debian.org>  Sun, 16 Jun 2013 13:57:23 +0200
-
-libvigraimpex (1.9.0+dfsg-3) experimental; urgency=low
-
-  * QA upload.
-  * [ref-to-temporary-in-Sampler.diff] Fix FTBFS witch gcc-4.8.
-    Closes: #701313
-
- -- Andreas Metzler <ametzler at debian.org>  Sun, 19 May 2013 15:44:09 +0200
-
-libvigraimpex (1.9.0+dfsg-2) experimental; urgency=low
-
-  * QA upload.
-  * [20_increased-tolerance-tests.diff] from upstream GIT: Increase tolerance
-    for a few tests hopefully fixing testsuite errors on s390x and ia64.
-
- -- Andreas Metzler <ametzler at debian.org>  Tue, 23 Apr 2013 19:10:22 +0200
-
-libvigraimpex (1.9.0+dfsg-1) experimental; urgency=low
-
-  * QA upload.
-  * New upstream version.
-  * Partial sync from Ubuntu:
-    + Unfuzz patches docsrc-out-of-source.diff and docsrc-paths.diff
-    + Drop no-offline-ps-doc.diff, doxygen-1.8.diff and gcc-4.7-fixes.diff,
-      included upstream.
-    + Drop gzipped-tutorial-reference.diff, pointing to upstream copy instead.
-    + Downgrade python-h5py from python-vigra's Recommends to Suggests.
-  * Use $(wildcard) to find both multiarched and regular libpython.
-  * Explicitly enable OpenEXR-support, it is not selected automatically
-    anymore.
-  * Bump shlibs.
-
- -- Andreas Metzler <ametzler at debian.org>  Sun, 07 Apr 2013 13:38:04 +0200
-
-libvigraimpex (1.8.0+dfsg-2) experimental; urgency=low
-
-  * QA upload.
-  * Enable OpenEXR support by adding a build-dependency on libopenexr-dev.
-  * Stop using .symbols files, and use 'dh_makeshlibs -V ...' to version the
-    shlibs file. This fixes FTBFS with diffferent gcc != 4.7.
-    Closes: #691095
-
- -- Andreas Metzler <ametzler at debian.org>  Sun, 13 Jan 2013 13:10:39 +0100
-
-libvigraimpex (1.8.0+dfsg-1) experimental; urgency=low
-
-  * QA upload.
-  * New upstream version.
-  * Update patches for new upstream release.
-  * Bump libvigraimpex soname to 4, update symbols file.
-  * Fix (new?) GCC 4.7 build failures.
-  * Fix build failure with doxygen 1.8.x.
-  * Build using dh_python2.
-  * debian/rules: Remove -mieee for sh4, it's now the default.
-  * Build with -ffloat-store on i386, to let the testsuite pass.
-  * Don't stop running the testsuite on the first error.
-  * On powerpc, run the tests, but ignore the test results.
-    It's likely that the build will fail on other archs, after
-    inspecting the test results, the outcome of the test should be
-    disabled or the precision for some tests be adjusted.
-
- -- Matthias Klose <doko at debian.org>  Wed, 26 Sep 2012 23:52:37 +0200
-
-libvigraimpex (1.7.1+dfsg1-3) unstable; urgency=low
-
-  * QA upload
-  * Fix build failure with GCC 4.7. Closes: #667258.
-  * Build-depend on libpng-dev. Closes: #662414.
-
- -- Matthias Klose <doko at debian.org>  Mon, 16 Apr 2012 23:06:00 +0200
-
-libvigraimpex (1.7.1+dfsg1-2) unstable; urgency=low
-
-  * QA upload
-  * Patch libpng15: Fix FTBFS with libpng 1.5 (closes: #636003). Thanks to
-    Nobuhiro Iwamatsu and Joachim Schleicher for forwarding and testing
-    the patch.
-  * Replace build-dependency on libpng12-dev by libpng-dev | libpng12-dev
-    in order to ease the upcoming libpng transition.
-  * Fix FTBFS on sh4 architecture by using -mieee flag (closes: #633818).
-    Thanks to Nobuhiro Iwamatsu for the patch!
-
- -- Ralf Treinen <treinen at debian.org>  Thu, 04 Aug 2011 13:57:08 +0200
-
-libvigraimpex (1.7.1+dfsg1-1) unstable; urgency=low
-
-  * QA upload.
-  * Set maintainer to Debian QA Group.
-  * Demote Recommends of the documentation packages to Suggests.
-  * Drop fix-tinyvectortest.diff, no longer needed.
-  * Drop Vcs-* fields.
-  * Strip jQuery code from .orig.tar.gz, as we don't have source for it.
-    + Update debian/get-orig-source.sh, debian/rules, debian/watch.
-    + Update debian/copyright.
-  * Overhaul debian/rules. Stop using dh.
-  * Use dh_sphinxdoc:
-    + Update debian/control to use ${sphinxdoc:Depends} instead of hardcoded
-      libjs-jquery.
-    + Call it in debian/rules if it's installed. Otherwise, generate substvars
-      manually.
-  * Add missing build-dependency on python-support.
-
- -- Jakub Wilk <jwilk at debian.org>  Tue, 12 Jul 2011 19:34:24 +0200
-
-libvigraimpex (1.7.1+dfsg-8) unstable; urgency=low
-
-  * Unbreak fix-tinyvectortest.diff.
-
- -- Jakub Wilk <jwilk at debian.org>  Wed, 25 May 2011 01:21:31 +0200
-
-libvigraimpex (1.7.1+dfsg-7) unstable; urgency=low
-
-  * To fix FTBFS on s390, rewrite a loop in TinyVectorTest::equalIter(), so
-    that it doesn't trigger bug in GCC 4.6 (see Debian bug #627795).
-    [fix-tinyvectortest.diff]
-
- -- Jakub Wilk <jwilk at debian.org>  Tue, 24 May 2011 22:09:12 +0200
-
-libvigraimpex (1.7.1+dfsg-6) unstable; urgency=low
-
-  * To fix FTBFS on powerpc with GCC 4.6, use epsilon comparison in
-    ConvolutionTest::recursiveFilterTestFromRepeatWithAvoid. Thanks to Stefano
-    Rivera for debugging and for the patch. [fix-convolutiontest.diff]
-  * Allow libvigraimpex-dev to be co-installable with over providers of
-    libhdf5-dev than libhdf5-serial-dev (closes: #627421). Thanks to Laurent
-    Bonnaud for the bug report.
-
- -- Jakub Wilk <jwilk at debian.org>  Fri, 20 May 2011 20:24:30 +0200
-
-libvigraimpex (1.7.1+dfsg-5) unstable; urgency=low
-
-  * Use default Python version when building documentation.
-  * Update docsrc-doxygen-1.7.diff to deal with the latest Doxygen.
-  * Remove unused jquery.js from libvigraimpex-doc.
-  * Add a missing include to fix FTBFS with GCC 4.6 (closes: #625104). Thanks
-    to Lucas Nussbaum for the bug report. [fix-ftbfs-gcc4.6.diff]
-  * Bump standards version to 3.9.2 (no changes needed).
-  * Mark more symbols as optional.
-
- -- Jakub Wilk <jwilk at debian.org>  Mon, 02 May 2011 19:47:58 +0200
-
-libvigraimpex (1.7.1+dfsg-4) unstable; urgency=low
-
-  * Preserve symlinks when copying object files from one build directory to
-    another (closes: #618667).
-
- -- Jakub Wilk <jwilk at debian.org>  Sun, 20 Mar 2011 15:50:05 +0100
-
-libvigraimpex (1.7.1+dfsg-3) unstable; urgency=low
-
-  * Update the symbols file.
-  * On buildds, artificially limit paralellism in order not to run out of RAM.
-
- -- Jakub Wilk <jwilk at debian.org>  Tue, 15 Mar 2011 15:14:04 +0100
-
-libvigraimpex (1.7.1+dfsg-2) unstable; urgency=low
-
-  * Upload to unstable.
-  * Fix patch headers to be in line with DEP-3.
-  * Update the symbols file.
-
- -- Jakub Wilk <jwilk at debian.org>  Sat, 12 Mar 2011 20:29:34 +0100
-
-libvigraimpex (1.7.1+dfsg-1) experimental; urgency=low
-
-  * New upstream release.
-    + Drop numpy-double-longdouble.diff, applied upstream.
-    + Drop noise-normalization-invariant.diff, applied upstream.
-    + Update debian/copyright.
-    + Rename libvigraimpex2 to libvigraimpex3, following SONAME bump.
-    + Update the symbols file.
-    + Include the vigra-config script.
-      + Patch it to return correct documentation path.
-        [vigra-config-docdir.diff]
-      + Update debian/NEWS.
-      + Provide a new manual page.
-  * Update patch headers.
-  * Export LDFLAGS.
-  * Remove Win32-only files and pre-built documentation from the .orig
-    tarball to save some space.
-  * Respect DEB_BUILD_OPTIONS=parallel=N.
-  * Respect DEB_BUILD_OPTIONS=noopt.
-  * Rename some private variables in debian/rules to make them lowercase.
-  * Require that Numpy is usable with every supported Python version.
-  * Avoid using SONAMEs in Python extension modules.
-  * Convert debian/copyright to the latest DEP-5 version.
-  * Install symlinks from /usr/share/doc/libvigraimpex-dev/html to
-    /usr/share/doc/libvigraimpex-doc/html.
-  * Install symlinks from /usr/share/doc/python-vigra/{html,rst} to
-    /usr/share/doc/python-vigra-doc/{html,rst}.
-  * Build Python extensions with -fno-strict-aliasing.
-  * Remove ‘debian/tmp’ prefix from debian/*.install files.
-  * Provide ‘build-arch’ and ‘build-indep’ targets in debian/rules.
-  * Use an alternative dependency template in the symbols file to make sure
-    that a strict versioned dependency on the shared library will be generated
-    for packages using optional (private) symbols.
-
- -- Jakub Wilk <jwilk at debian.org>  Sun, 20 Feb 2011 23:21:40 +0100
-
-libvigraimpex (1.7.0+dfsg-7) unstable; urgency=low
-
-  * Bump all versions in the symbols file to 1.7.0.
-  * Make python-vigra-doc recommend libvigraimpex-doc.
-  * Make libvigraimpex-doc suggest python-vigra-doc.
-  * Fix documentation generation with Doxygen 1.7.
-  * Fix hyperlinks from the C++ library documentation to python-vigra
-    documentation (closes: #590069) and the other way round (closes: #590068).
-    [docsrc-paths.diff]
-  * Stop using g++-4.3 on hppa, as #585925 is fixed now (closes: #588168).
-
- -- Jakub Wilk <jwilk at debian.org>  Wed, 25 Aug 2010 20:54:45 +0200
-
-libvigraimpex (1.7.0+dfsg-6) unstable; urgency=low
-
-  * Fix generation of dependencies on python-numpy to take epochs into
-    account. Use dh_numpy provided by python-numpy if available.
-
- -- Jakub Wilk <jwilk at debian.org>  Wed, 28 Jul 2010 12:15:09 +0200
-
-libvigraimpex (1.7.0+dfsg-5) unstable; urgency=low
-
-  * To fix ABI breakage, rename binary package from libvigraimpex2ldbl to
-    libvigraimpex2 (closes: #589779).
-  * Bump standards version to 3.9.1 (no changes needed).
-  * Automatically generate versioned dependencies on python-numpy.
-
- -- Jakub Wilk <jwilk at debian.org>  Mon, 26 Jul 2010 23:17:03 +0200
-
-libvigraimpex (1.7.0+dfsg-4) unstable; urgency=low
-
-  * Bump standards version to 3.9.0 (no changes needed).
-  * In order to mitigate bug #586247, add invariant check to
-    noiseVarianceListMedianCut(). [noise-normalization-invariant.diff]
-  * For the time being, disable failing vigranumpy test for
-    noiseVarianceClustering(); see bug #586247.
-    [disable-noise-variance-clustering-vigranumpy-test.diff]
-  * Update headers for patches that has been applied upstream.
-
- -- Jakub Wilk <jwilk at debian.org>  Mon, 05 Jul 2010 17:18:21 +0200
-
-libvigraimpex (1.7.0+dfsg-3) unstable; urgency=low
-
-  * New upstream release, which includes backwards-incompatible changes (see
-    NEWS.Debian for details).
-  * Drop all existing patches: they have been either applied upstream or
-    become irrelevant.
-  * Upstream added support for HDF5:
-    + Add libhdf5-serial-dev to Build-Depends and Depends of
-      libvigraimpex-dev.
-  * Upstream has implemented new build system on the basis of cmake:
-    + Build-depend on cmake.
-    + Reimplement debian/rules from scratch; update other files in debian/
-      accordingly.
-    + Drop vigra-config along with its manual page.
-    + No longer provide static library.
-  * Simplify makefile for examples.
-  * Build Python bindings for VIGRA:
-    + Build-depend on python-all-dev, python-numpy, libboost-python-dev,
-      python-sphinx.
-    + Patch documentation generation system to support out-of-source building.
-      [docsrc-out-of-source.diff]
-  * Run tests at build time.
-    + Build-depend on python-nose.
-  * Update the symbols file.
-  * Update the watch file.
-  * Install JPEG files into examples, too.
-  * Update debian/copyright and convert it do DEP-5 format.
-  * Fix link in the documentation to cope with the fact that
-    tutorial_reference.pdf is compressed in the binary package.
-    [gzipped-tutorial-reference.diff]
-  * Don't declare the same NumpyArrayValuetypeTraits instance twice if
-    sizeof(double) == sizeof(long double); fix FTBFS on such architectures
-    (closes: #581688). [numpy-double-longdouble.diff]
-  * Use g++-4.3 on hppa for the time being (closes: #582379). g++-4.4 is known
-    to generate buggy code, see bug #585925.
-
- -- Jakub Wilk <jwilk at debian.org>  Wed, 16 Jun 2010 01:12:04 +0200
-
-libvigraimpex (1.6.0+dfsg1-1) unstable; urgency=low
-
-  * Drop README.source, no longer needed.
-  * Strip PostScript documents without source from the .orig.tar.gz
-    (closes: #580154):
-    + Update get-orig-source target.
-    + Update links in the HTML documentation to point to copies of these
-      documents on VIGRA homepage. [no-offline-ps-doc.diff]
-
- -- Jakub Wilk <jwilk at debian.org>  Mon, 10 May 2010 19:07:57 +0200
-
-libvigraimpex (1.6.0+dfsg-2) unstable; urgency=low
-
-  * Update symbols file to fix FTBFS on sparc64.
-  * Bump standards version to 3.8.4 (no changes needed).
-  * Update my e-mail address.
-  * Replace (build-)dependency on libjpeg62-dev with libjpeg-dev
-    (closes: #569280).
-  * Switch to source format 3.0 (quilt). Drop build-dependency on quilt and
-    adjust debian/rules accordingly.
-  * Fix a typo in src/impex/tiff.cxx (tiff-typo.diff).
-  * Update patch descriptions.
-
- -- Jakub Wilk <jwilk at debian.org>  Thu, 11 Feb 2010 13:02:46 +0100
-
-libvigraimpex (1.6.0+dfsg-1) unstable; urgency=low
-
-  * Use upstream VCS to recreate .orig.tar.gz with the documentation source
-    included (closes: #547943).
-  * Fix documentation generator to be compatible with recent Doxygen
-    (docsrc-doxygen-any-version.diff). Documentation is now regenerated at
-    build time.
-  * Use sed+tr (rather than lynx) to convert upstream changelog to text.
-  * Avoid copy-all-remove-some in the install target.
-  * Add Vcs-* fields.
-  * Mark more symbols as optional.
-
- -- Jakub Wilk <ubanus at users.sf.net>  Fri, 09 Oct 2009 21:25:37 +0200
-
-libvigraimpex (1.6.0-2) unstable; urgency=low
-
-  * Make debian/rules safe for parallel builds.
-  * Don't install *.la files.
-  * Include symbols file.
-  * Drop runtime dependency on fftw3.
-
- -- Jakub Wilk <ubanus at users.sf.net>  Thu, 03 Sep 2009 15:37:01 +0200
-
-libvigraimpex (1.6.0-1) unstable; urgency=low
-
-  * New upstream release (closes: #419431, #540242).
-  * New maintainer (closes: #503486).
-  * Use quilt to manage patches.
-  * Add resampleImage() with different x- and y-factors
-    (resample-image-different-xy.diff backported from the upstream VCS;
-    closes: #540334).
-  * Fix a typo in src/impex/viff.cxx (viff-typo.diff).
-  * Sanitize the upstream build system (build-system.diff); run
-    autoreconf at build time; remove all autogenerated files at build time.
-  * Rewrite debian/rules from scratch; use dh from debhelper 7.
-  * Provide a separate documentation package.
-  * Update the examples Makefile.
-  * Depend of lynx-cur rather than lynx.
-  * Bump standards version to 3.8.3 (no changes needed).
-  * Drop initial articles from package descriptions.
-  * Update the homepage URL.
-  * Update debian/copyright.
-
- -- Jakub Wilk <ubanus at users.sf.net>  Mon, 17 Aug 2009 22:32:07 +0200
-
-libvigraimpex (1.5.0-2) unstable; urgency=low
-
-  * QA upload.
-    + Set maintainer to Debian QA Group <packages at qa.debian.org>.
-  * Acknowledge NMUs.
-  * Add Homepage.
-  * Add watch file.
-  * Make clean not ignore errors.
-  * Update ${Source-Version} depends to ${binary:Version}.
-  * Convert debian/copyright to UTF-8.
-  * Update fftw3-dev build-depends to libfftw3-dev.
-  * Update fftw3 dependency to libfftw3-3.
-  * Remove redundant section from libvigraimpex binary.
-  * Fix short descriptions.
-  * Add proper copyright holders to debian/copyright.
-  * Bump debhelper build-dep and compat to 5.
-  * Bump Standards Version to 3.8.0.
-
- -- Barry deFreese <bdefreese at debian.org>  Mon, 02 Feb 2009 17:07:57 -0500
-
-libvigraimpex (1.5.0-1.1) unstable; urgency=medium
-
-  * Non-maintainer upload.
-  * Rename libvigraimpex2 for the ldbl128 transition (Closes: #430309).
-
- -- Luk Claes <luk at debian.org>  Sat, 02 Feb 2008 14:56:45 +0000
-
-libvigraimpex (1.5.0-1) unstable; urgency=low
-
-  * New upstream release. Several additions and improvements. Bug
-    fixes in code and documentation. Improved the Image Import/Export
-    Facilities. Improved support of 64-bit compilers. Added elliptic
-    integrals.
-
- -- Alejandro Sierra <algsierra at gmail.com>  Sat,  9 Dec 2006 11:45:33 -0600
-
-libvigraimpex (1.4.0-1) unstable; urgency=low
-
-  * Initial Release. (Closes: #251616)
-
- -- Alejandro Sierra <algsierra at gmail.com>  Sun,  21 Dec 2005 14:07:11 -0500
-
diff --git a/debian/clean b/debian/clean
deleted file mode 100644
index 8a97d3a..0000000
--- a/debian/clean
+++ /dev/null
@@ -1,4 +0,0 @@
-doc/*/build-stamp
-doc/changelog
-vigranumpy/docsrc/c_api_replaces.txt
-vigranumpy/lib/__version__.py
diff --git a/debian/compat b/debian/compat
deleted file mode 100644
index ec63514..0000000
--- a/debian/compat
+++ /dev/null
@@ -1 +0,0 @@
-9
diff --git a/debian/control b/debian/control
deleted file mode 100644
index 2d7b178..0000000
--- a/debian/control
+++ /dev/null
@@ -1,125 +0,0 @@
-Source: libvigraimpex
-Maintainer: Debian Science Team <debian-science-maintainers at lists.alioth.debian.org>
-Uploaders: Andreas Tille <tille at debian.org>
-Section: libs
-Priority: optional
-Build-Depends: debhelper (>= 9),
-               cmake,
-               libfftw3-dev,
-               libpng-dev,
-               libjpeg-dev,
-               libtiff5-dev,
-               libhdf5-serial-dev,
-               python-all-dev,
-               python-numpy,
-               libboost-python-dev,
-               python-nose,
-               libopenexr-dev
-Build-Depends-Indep: python,
-                     python-sphinx,
-                     doxygen,
-                     texlive-latex-base,
-                     ghostscript
-Build-Conflicts: autoconf2.13
-Standards-Version: 3.9.5
-Vcs-Git: git://anonscm.debian.org/debian-science/packages/libvigraimpex.git
-Vcs-Browser: http://anonscm.debian.org/gitweb/?p=debian-science/packages/libvigraimpex.git
-Homepage: http://ukoethe.github.io/vigra/
-X-Python-Version: >= 2.5
-
-Package: libvigraimpex-dev
-Architecture: any
-Section: libdevel
-Depends: ${misc:Depends},
-         ${python:Depends},
-         libvigraimpex5 (= ${binary:Version}),
-         libhdf5-serial-dev | libhdf5-dev,
-         libfftw3-dev,
-         libpng12-dev,
-         libjpeg-dev,
-         libtiff5-dev
-Suggests: libvigraimpex-doc
-Description: development files for the C++ computer vision library
- Vision with Generic Algorithms (VIGRA) is a computer vision library
- that puts its main emphasis on flexible algorithms, because
- algorithms represent the principle know-how of this field. The
- library was consequently built using generic programming as
- introduced by Stepanov and Musser and exemplified in the C++ Standard
- Template Library. By writing a few adapters (image iterators and
- accessors) you can use VIGRA's algorithms on top of your data
- structures, within your environment. 
- . 
- This package contains the header and development files needed to
- build programs and packages using VIGRA.
-
-Package: libvigraimpex5
-Architecture: any
-Depends: ${shlibs:Depends},
-         ${misc:Depends}
-Description: C++ computer vision library
- Vision with Generic Algorithms (VIGRA) is a computer vision library 
- that puts its main emphasis on flexible algorithms, because
- algorithms represent the principle know-how of this field. The
- library was consequently built using generic programming as
- introduced by Stepanov and Musser and exemplified in the C++ Standard
- Template Library. By writing a few adapters (image iterators and
- accessors) you can use VIGRA's algorithms on top of your data
- structures, within your environment. 
-
-Package: libvigraimpex-doc
-Architecture: all
-Section: doc
-Depends: ${misc:Depends}
-Suggests: libvigraimpex-dev,
-          python-vigra-doc
-Description: Documentation for the C++ computer vision library
- Vision with Generic Algorithms (VIGRA) is a computer vision library
- that puts its main emphasis on flexible algorithms, because
- algorithms represent the principle know-how of this field. The
- library was consequently built using generic programming as
- introduced by Stepanov and Musser and exemplified in the C++ Standard
- Template Library. By writing a few adapters (image iterators and
- accessors) you can use VIGRA's algorithms on top of your data
- structures, within your environment. 
- . 
- This package contains documentation for the VIGRA library.
-
-Package: python-vigra
-Architecture: any
-Section: python
-Depends: ${misc:Depends},
-         ${shlibs:Depends},
-         ${python:Depends}
-Recommends: python-qt4
-Suggests: python-vigra-doc,
-          python-h5py
-Description: Python bindings for the C++ computer vision library
- Vision with Generic Algorithms (VIGRA) is a computer vision library
- that puts its main emphasis on flexible algorithms, because
- algorithms represent the principle know-how of this field. The
- library was consequently built using generic programming as
- introduced by Stepanov and Musser and exemplified in the C++ Standard
- Template Library. By writing a few adapters (image iterators and
- accessors) you can use VIGRA's algorithms on top of your data
- structures, within your environment.
- .
- This package exports the functionality of the VIGRA library to Python.
-
-Package: python-vigra-doc
-Architecture: all
-Section: doc
-Depends: ${misc:Depends},
-         ${sphinxdoc:Depends}
-Suggests: python-vigra,
-          libvigraimpex-doc
-Description: Documentation for Python bindings for the C++ computer vision library
- Vision with Generic Algorithms (VIGRA) is a computer vision library
- that puts its main emphasis on flexible algorithms, because
- algorithms represent the principle know-how of this field. The
- library was consequently built using generic programming as
- introduced by Stepanov and Musser and exemplified in the C++ Standard
- Template Library. By writing a few adapters (image iterators and
- accessors) you can use VIGRA's algorithms on top of your data
- structures, within your environment.
- .
- This package contains documentation for Python bindings for the VIGRA library.
diff --git a/debian/convert-changelog.sh b/debian/convert-changelog.sh
deleted file mode 100644
index cb035db..0000000
--- a/debian/convert-changelog.sh
+++ /dev/null
@@ -1,20 +0,0 @@
-#!/bin/sh
-exec sed -r \
-  -e '1,3 d' \
-  -e 's| ?\\ref | |g' \
-  -e 's|\\link ||g' \
-  -e 's|\\endlink||g' \
-  -e 's|\\#|#|g' \
-  -e 's|<p>||' \
-  -e 's|<a href=[^>]*>||g' \
-  -e 's|</a>||g' \
-  -e 's|<b> *(.*)</b>|\1|g' \
-  -e 's|</?[Uu][Ll]>||g' \
-  -e 's|</?[Tt][Tt]>||g' \
-  -e 's|( *)<li>|\n\1*|' \
-  -e 's|<br>$||' \
-  -e 's|ö|ö|g' \
-  -e '/^[*][/]$/ d' \
-| tr '\n' '$' \
-| sed -r -e 's|\$\$+|\n\n|g' -e 's| *\$ *| |g' \
-| fmt
diff --git a/debian/copyright b/debian/copyright
deleted file mode 100644
index 8e589b1..0000000
--- a/debian/copyright
+++ /dev/null
@@ -1,59 +0,0 @@
-Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
-Upstream-Name: VIGRA
-Upstream-Contact: Ullrich Köthe <ullrich.koethe at iwr.uni-heidelberg.de>
-Source: http://ukoethe.github.io/vigra/
-Files-Excluded:
-    vigra-*win32*.zip
-    .g*
-    .h*
-    .t*
-    doc/vigra
-    doc/vigranumpy
-    docsrc/documents
-Comment:
-  PostScript documents without source has been stripped from the Debian
-  version of this package.
-
-Files: *
-Copyright: 1998-2012, Ullrich Köthe
-           1998-2010, Hans Meine
-           2010, Joachim Schleicher
-           2009, Nico Splitthoff
-           2008-2009, Rahul Nair
-           2009, Michael Hanselmann
-           1998-2008, Gunnar Kedenburg
-           1998-2002, Pablo d'Angelo
-           2003-2004, 2006-2007, B. Seppke
-           2003-2004, 2006-2007, F. Heinrich
-           2003-2007, Kasim Terzic
-           2003-2007, Christian-Dennis Rahn
-           1999, Paul Moore
-           2011-2012 by Markus Nullmeier
-           2012 Christoph Spiel
-           2011-2012 by Stefan Schmidt
-           2012 by Frank Lenzen
-License: MIT
-
-Files: debian/*
-Copyright: 1995-1996, Alejandro Sierra
-           2009-2011, Jakub Wilk
-License: MIT
-
-License: MIT
- Permission is hereby granted, free of charge, to any person obtaining a copy
- of this software and associated documentation files (the “Software”), to
- deal in the Software without restriction, including without limitation the
- rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
- sell copies of the Software, and to permit persons to whom the Software is
- furnished to do so, subject to the following conditions:
- .
- The above copyright notice and this permission notice shall be included in
- all copies or substantial portions of the Software.
- .
- THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND EXPRESS OR
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
- IN THE SOFTWARE.
diff --git a/debian/libvigraimpex-dev.dirs b/debian/libvigraimpex-dev.dirs
deleted file mode 100644
index 4418816..0000000
--- a/debian/libvigraimpex-dev.dirs
+++ /dev/null
@@ -1,2 +0,0 @@
-usr/lib
-usr/include
diff --git a/debian/libvigraimpex-dev.docs b/debian/libvigraimpex-dev.docs
deleted file mode 100644
index e174728..0000000
--- a/debian/libvigraimpex-dev.docs
+++ /dev/null
@@ -1 +0,0 @@
-debian/README.Debian
diff --git a/debian/libvigraimpex-dev.examples b/debian/libvigraimpex-dev.examples
deleted file mode 100644
index 04a8028..0000000
--- a/debian/libvigraimpex-dev.examples
+++ /dev/null
@@ -1,5 +0,0 @@
-src/examples/*.cxx
-src/examples/*.gif
-src/examples/*.tif
-src/examples/*.JPG
-debian/Makefile
diff --git a/debian/libvigraimpex-dev.install b/debian/libvigraimpex-dev.install
deleted file mode 100644
index f75b4b7..0000000
--- a/debian/libvigraimpex-dev.install
+++ /dev/null
@@ -1,3 +0,0 @@
-/usr/bin/vigra-config
-/usr/include/*
-/usr/lib/lib*.so
diff --git a/debian/libvigraimpex-dev.manpages b/debian/libvigraimpex-dev.manpages
deleted file mode 100644
index 7f077bf..0000000
--- a/debian/libvigraimpex-dev.manpages
+++ /dev/null
@@ -1 +0,0 @@
-debian/vigra-config.1
diff --git a/debian/libvigraimpex-doc.doc-base b/debian/libvigraimpex-doc.doc-base
deleted file mode 100644
index df0fc76..0000000
--- a/debian/libvigraimpex-doc.doc-base
+++ /dev/null
@@ -1,8 +0,0 @@
-Document: vigra-reference-manual
-Title: VIGRA Reference Manual
-Author: Ullrich Köthe
-Section: Programming
-
-Format: HTML
-Index: /usr/share/doc/libvigraimpex-doc/html/index.html
-Files: /usr/share/doc/libvigraimpex-doc/html/*.html 
diff --git a/debian/libvigraimpex-doc.docs b/debian/libvigraimpex-doc.docs
deleted file mode 100644
index ae44496..0000000
--- a/debian/libvigraimpex-doc.docs
+++ /dev/null
@@ -1 +0,0 @@
-doc/vigra/
diff --git a/debian/libvigraimpex-doc.links b/debian/libvigraimpex-doc.links
deleted file mode 100644
index 68cfd93..0000000
--- a/debian/libvigraimpex-doc.links
+++ /dev/null
@@ -1 +0,0 @@
-usr/share/doc/libvigraimpex-doc/html usr/share/doc/libvigraimpex-dev/html
diff --git a/debian/libvigraimpex5.dirs b/debian/libvigraimpex5.dirs
deleted file mode 100644
index 6845771..0000000
--- a/debian/libvigraimpex5.dirs
+++ /dev/null
@@ -1 +0,0 @@
-usr/lib
diff --git a/debian/libvigraimpex5.docs b/debian/libvigraimpex5.docs
deleted file mode 100644
index 07e0db4..0000000
--- a/debian/libvigraimpex5.docs
+++ /dev/null
@@ -1 +0,0 @@
-README.*
diff --git a/debian/libvigraimpex5.install b/debian/libvigraimpex5.install
deleted file mode 100644
index eeaf559..0000000
--- a/debian/libvigraimpex5.install
+++ /dev/null
@@ -1 +0,0 @@
-/usr/lib/lib*.so.*
diff --git a/debian/patches/disable-noise-variance-clustering-vigranumpy-test.diff b/debian/patches/disable-noise-variance-clustering-vigranumpy-test.diff
deleted file mode 100644
index 27bb180..0000000
--- a/debian/patches/disable-noise-variance-clustering-vigranumpy-test.diff
+++ /dev/null
@@ -1,19 +0,0 @@
-Description: Disable vigranumpy test for noiseVarianceClustering()
- For the time being, disable failing vigranumpy test for
- noiseVarianceClustering().
-Author: Jakub Wilk <jwilk at debian.org>
-Forwarded: not-needed
-Last-Update: 2011-03-02
-
---- a/vigranumpy/test/test2.py
-+++ b/vigranumpy/test/test2.py
-@@ -144,7 +144,8 @@ def test_Noise():
-     image += np.random.normal(size=(100,100, 3))
-     
-     noiseVarianceEstimation(image.bindAxis('c', 0))
--    noiseVarianceClustering(image.bindAxis('c', 0))
-+    # FIXME: Disabled, see http://bugs.debian.org/586247
-+    # XXX noiseVarianceClustering(scalar_image)
-     nonparametricNoiseNormalization(image)
-     quadraticNoiseNormalizationEstimated(image)
-     linearNoiseNormalizationEstimated(image)
diff --git a/debian/patches/docsrc-out-of-source.diff b/debian/patches/docsrc-out-of-source.diff
deleted file mode 100644
index 09bd075..0000000
--- a/debian/patches/docsrc-out-of-source.diff
+++ /dev/null
@@ -1,16 +0,0 @@
-Description: Add support for out-of-source documentation building.
-Author: Jakub Wilk <jwilk at debian.org>
-Forwarded: not-needed
-Last-Update: 2010-04-16
-
---- a/docsrc/makeFunctionIndex.py
-+++ b/docsrc/makeFunctionIndex.py
-@@ -143,7 +143,7 @@ generateFunctionIndex(functionList)
- # crosslinking of vigranumpy documentation.
- # Note that '::' are not allowed in reStructuedText link names, 
- # so we have to use '.' instead.
--replaces=open("../vigranumpy/docsrc/c_api_replaces.txt","w")
-+replaces=open("../../vigranumpy/docsrc/c_api_replaces.txt","w")
- for i in range(len(functionList)):
-     functionName = functionList[i][1]
-     overloadDisambiguation = functionList[i][2]
diff --git a/debian/patches/docsrc-paths.diff b/debian/patches/docsrc-paths.diff
deleted file mode 100644
index 40ef40b..0000000
--- a/debian/patches/docsrc-paths.diff
+++ /dev/null
@@ -1,68 +0,0 @@
-Description: Fix hyperlinks from the C++ library documentation to python-vigra documentation and the other way round.
-Bug-Debian: http://bugs.debian.org/590069
-Bug-Debian: http://bugs.debian.org/590068
-Forwarded: not-needed
-Last-Update: 2011-03-02
-
---- a/docsrc/credits_changelog.dxx
-+++ b/docsrc/credits_changelog.dxx
-@@ -43,7 +43,7 @@
-            also contributed his pLSA (probabilistic latent semantic analysis) implementation.
-       
-       <li> Nathan Huesken and Christoph Sommer helped a lot in developing 
--           <a href="../vigranumpy/index.html">vigranumpy</a>, the VIGRA Python bindings.
-+           <a href="/usr/share/doc/python-vigra-doc/html/index.html">vigranumpy</a>, the VIGRA Python bindings.
-            
-       <li> Jens-Malte Gottfried contributed to the cmake-based build system.
- 
-@@ -224,7 +224,7 @@ Many thanks to all!
-       
-       <li> Added \ref vigra::NumpyAnyArray and \ref vigra::NumpyArray, improved \ref vigra::MultiArrayView.
-       
--      <li> Added <b><a href="../vigranumpy/index.html">vigranumpy</a></b> (VIGRA Python bindings).
-+      <li> Added <b><a href="/usr/share/doc/python-vigra-doc/html/index.html">vigranumpy</a></b> (VIGRA Python bindings).
-       
-       <li> Added \ref VigraMatlab.
-       
---- a/docsrc/index.dxx
-+++ b/docsrc/index.dxx
-@@ -37,7 +37,7 @@
-         <BR>   <em>Demonstration programs for VIGRA's usage </em>
-     <LI> \ref VigraMatlab
-         <BR>   <em>VIGRA Matlab bindings</em>
--    <LI> <b><a href="../vigranumpy/index.html">vigranumpy</a></b>
-+    <LI> <b><a href="/usr/share/doc/python-vigra-doc/html/index.html">vigranumpy</a></b>
-         <BR>   <em>VIGRA Python bindings</em>
-     <LI> \ref CreditsChangelog
-         <BR>   <em>Who contributed what?</em>
---- a/vigranumpy/docsrc/conf.py.in
-+++ b/vigranumpy/docsrc/conf.py.in
-@@ -239,7 +239,7 @@ for l in replace_file:
-     .. |%s| replace:: %s
- """% (replacement[0],replacement[0][k+1:])
-     rst_epilog += """
--    .. _%s: ../../doc/vigra/%s
-+    .. _%s: /usr/share/doc/libvigraimpex-doc/html/%s
- """% (replacement[0],replacement[1])
- 
- # make python accumulators documentation better (?)
---- a/vigranumpy/docsrc/index.rst
-+++ b/vigranumpy/docsrc/index.rst
-@@ -14,7 +14,7 @@ Vigranumpy Reference
- Introduction
- ------------
- 
--Vigranumpy exports the functionality of the C++ image processing library `VIGRA <../vigra/index.html>`_ to Python. It can be invoked by importing the vigra module::
-+Vigranumpy exports the functionality of the C++ image processing library `VIGRA </usr/share/doc/libvigraimpex-doc/html/index.html>`_ to Python. It can be invoked by importing the vigra module::
- 
-     import vigra
- 
-@@ -403,7 +403,7 @@ Color and Intensity Manipulation
- 
- The module vigra.colors provides functions to adjust image brightness and contrast, 
- and to transform between different color spaces. 
--See `Color Conversions <../vigra/group__ColorConversions.html>`_ in the C++ documentation
-+See `Color Conversions </usr/share/doc/libvigraimpex-doc/group__ColorConversions.html>`_ in the C++ documentation
- for more information.
- 
- .. automodule:: vigra.colors
diff --git a/debian/patches/removed-static-docs.diff b/debian/patches/removed-static-docs.diff
deleted file mode 100644
index b8abfb0..0000000
--- a/debian/patches/removed-static-docs.diff
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/vigranumpy/docsrc/CMakeLists.txt
-+++ b/vigranumpy/docsrc/CMakeLists.txt
-@@ -19,7 +19,7 @@ IF(PYTHON_SPHINX)
-         -c ${CMAKE_CURRENT_BINARY_DIR}
-         ${SPHINX_OPTS})
-     file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/_static)
--    configure_file(_static/vigra-icon.ico ${CMAKE_CURRENT_BINARY_DIR}/_static/vigra-icon.ico COPYONLY)
-+    configure_file(../../docsrc/vigra-icon.ico ${CMAKE_CURRENT_BINARY_DIR}/_static/vigra-icon.ico COPYONLY)
-     
-     DEPENDENCY_PATH(VIGRAIMPEX_PATH vigraimpex)
-     STRING(REGEX REPLACE "/vigra$" "" VIGRANUMPY_TMP_PATH ${vigranumpy_tmp_dir})   
diff --git a/debian/patches/series b/debian/patches/series
deleted file mode 100644
index b710a46..0000000
--- a/debian/patches/series
+++ /dev/null
@@ -1,5 +0,0 @@
-disable-noise-variance-clustering-vigranumpy-test.diff
-docsrc-out-of-source.diff
-docsrc-paths.diff
-vigra-config-docdir.diff
-removed-static-docs.diff
diff --git a/debian/patches/vigra-config-docdir.diff b/debian/patches/vigra-config-docdir.diff
deleted file mode 100644
index 996e528..0000000
--- a/debian/patches/vigra-config-docdir.diff
+++ /dev/null
@@ -1,12 +0,0 @@
-Description: Correct output of ‘vigra-config --docdir’.
-Author: Jakub Wilk <jwilk at debian.org>
-Forwarded: not-needed
-Last-Update: 2011-01-22
---- a/config/vigra-config.in
-+++ b/config/vigra-config.in
-@@ -91,4 +91,4 @@ if op.include_path: # was: --include_pat
-     print '@CMAKE_INSTALL_PREFIX@/include'
- 
- if op.docdir:
--    print '@DOCDIR@'
-+    print '/usr/share/doc/libvigraimpex-dev/html/'
diff --git a/debian/python-vigra-doc.doc-base b/debian/python-vigra-doc.doc-base
deleted file mode 100644
index 1f7e6d8..0000000
--- a/debian/python-vigra-doc.doc-base
+++ /dev/null
@@ -1,12 +0,0 @@
-Document: vigranumpy-reference
-Title: Vigranumpy Reference
-Author: Ullrich Köthe
-Section: Programming
-
-Format: HTML
-Index: /usr/share/doc/python-vigra-doc/html/index.html
-Files: /usr/share/doc/python-vigra-doc/html/*.html
-
-Format: Text
-Index: /usr/share/doc/python-vigra-doc/rst/index.txt
-Files: /usr/share/doc/python-vigra-doc/rst/*.txt
diff --git a/debian/python-vigra-doc.docs b/debian/python-vigra-doc.docs
deleted file mode 100644
index 88ea8a1..0000000
--- a/debian/python-vigra-doc.docs
+++ /dev/null
@@ -1 +0,0 @@
-doc/vigranumpy/
diff --git a/debian/python-vigra-doc.links b/debian/python-vigra-doc.links
deleted file mode 100644
index ef57f32..0000000
--- a/debian/python-vigra-doc.links
+++ /dev/null
@@ -1,4 +0,0 @@
-usr/share/javascript/jquery/jquery.min.js usr/share/doc/python-vigra-doc/html/_static/jquery.js
-usr/share/doc/python-vigra-doc/html/_sources usr/share/doc/python-vigra-doc/rst
-usr/share/doc/python-vigra-doc/html usr/share/doc/python-vigra/html
-usr/share/doc/python-vigra-doc/rst usr/share/doc/python-vigra/rst
diff --git a/debian/python-vigra.install b/debian/python-vigra.install
deleted file mode 100644
index 605530a..0000000
--- a/debian/python-vigra.install
+++ /dev/null
@@ -1 +0,0 @@
-/usr/lib/python*/*-packages/
diff --git a/debian/rules b/debian/rules
deleted file mode 100755
index a0dc675..0000000
--- a/debian/rules
+++ /dev/null
@@ -1,200 +0,0 @@
-#!/usr/bin/make -f
-
-CFLAGS := $(shell dpkg-buildflags --get CFLAGS; dpkg-buildflags --get CPPFLAGS)
-CXXFLAGS := $(shell dpkg-buildflags --get CXXFLAGS; dpkg-buildflags --get CPPFLAGS)
-LDFLAGS := $(shell dpkg-buildflags --get LDFLAGS) -Wl,--as-needed
-
-# These don't need to be exported and if they are we'll get the flags
-# duplicated in the command line.
-unexport CFLAGS
-unexport CXXFLAGS
-unexport LDFLAGS
-
-ifeq ($(DEB_HOST_ARCH_CPU),i386)
-  CFLAGS += -ffloat-store
-  CXXFLAGS += -ffloat-store
-endif
-
-cmake_options = \
-    -DCMAKE_INSTALL_PREFIX=/usr \
-    -DCMAKE_VERBOSE_MAKEFILE=ON \
-    -DWITH_OPENEXR=ON \
-    -DCMAKE_C_FLAGS_RELEASE="$(CFLAGS)" \
-    -DCMAKE_CXX_FLAGS_RELEASE="$(CXXFLAGS)" \
-    -DCMAKE_SHARED_LINKER_FLAGS_RELEASE="$(LDFLAGS)"
-cmake_python_options = \
-    -DPYTHON_EXECUTABLE=/usr/bin/python$(1) \
-    -DPYTHON_INCLUDE_DIR=/usr/include/python$(1)/ \
-    -DPYTHON_LIBRARY=$(wildcard /usr/lib/libpython$(1).so /usr/lib/$(DEB_HOST_MULTIARCH)/libpython$(1).so) \
-    -DBoost_PYTHON_LIBRARY_RELEASE=$(wildcard /usr/lib/libboost_python-py$(subst .,,$(1)).so /usr/lib/$(DEB_HOST_MULTIARCH)/libboost_python-py$(subst .,,$(1)).so)
-
-# build and build-* targets
-# =========================
-
-.PHONY: build build-arch build-indep
-
-build: build-arch build-indep
-
-build-indep:
-	# Nothing to do in build-indep, "thanks" to bug #374029.
-
-build-arch:
-	dh_testdir
-	$(MAKE) -f debian/rules \
-		obj/CMakeCache.txt \
-		$(patsubst %,obj.%/CMakeCache.txt,$(shell pyversions -r))
-	$(MAKE) -f debian/rules \
-		doc/changelog \
-		obj/build-stamp \
-		$(patsubst %,obj.%/build-stamp,$(shell pyversions -r))
-ifeq ($(filter nocheck,$(DEB_BUILD_OPTIONS)),)
-  ifneq (,$(filter $(DEB_HOST_ARCH_CPU),powerpc))
-	: # run the tests, but ignore test results
-	-$(MAKE) -k -f debian/rules \
-		obj/test-stamp \
-		$(patsubst %,obj.%/test-stamp,$(shell pyversions -r))
-  else
-	$(MAKE) -k -f debian/rules \
-		obj/test-stamp \
-		$(patsubst %,obj.%/test-stamp,$(shell pyversions -r))
-  endif
-endif
-
-obj/CMakeCache.txt:
-	mkdir -p $(dir $(@))
-	cd $(dir $(@)) && cmake .. $(cmake_options) \
-		-DPYTHON_EXECUTABLE=/usr/bin/python \
-		-DWITH_VIGRANUMPY=0
-
-obj.python%/CMakeCache.txt:
-	mkdir -p $(dir $(@))
-	cd $(dir $(@)) && \
-		CXXFLAGS=-fno-strict-aliasing cmake .. $(cmake_options) $(call cmake_python_options,$(*))
-	if ! grep VIGRANUMPY_DEPENDENCIES $(@) > /dev/null; then \
-		echo "Error: Numpy for Python $* not found" >&2; \
-		rm -f $(@); \
-		exit 1; \
-	fi
-	# We don't want to link with libpythonX.Y.
-	# We don't want SONAMES (except vigranumpycore.so)
-	find $(dir $(@))/vigranumpy/ -name 'link.txt' -exec sed -i \
-		-e 's/ -lpython[0-9.]\+ / /g' \
-		-e '/-Wl,-soname,vigranumpycore/b' \
-		-e 's/ -Wl,-soname,[^ ]\+ / /' \
-		{} +
-
-obj/build-stamp: obj/CMakeCache.txt
-	$(MAKE) -C $(dir $(@))
-	chmod a-x vigranumpy/test/*.py # nosetest would skip executable *.py
-	touch $(@)
-
-obj.python%/build-stamp: obj.python%/CMakeCache.txt obj/build-stamp
-	cd obj && find . -name '*.o' -o -name '*.so' -o -name '*.so.*' | xargs cp -v --preserve=links --parents -t ../$(dir $(@))
-	$(MAKE) -C $(dir $(@))
-	touch $(@)
-
-obj/test-stamp: obj/build-stamp
-	$(MAKE) check -C $(dir $(@))
-	touch $(@)
-
-obj.python%/test-stamp:: obj.python%/build-stamp
-	$(MAKE) vigranumpytest -C $(dir $(@))
-	touch $(@)
-
-doc/changelog: docsrc/credits_changelog.dxx
-	sh debian/convert-changelog.sh < $(<) > $(@)
-
-# binary and binary-* targets
-# ===========================
-
-.PHONY: binary binary-arch binary-indep
-
-binary: binary-arch binary-indep
-
-binary-arch: build-arch
-	dh_testdir
-	dh_testroot
-	$(MAKE) -f debian/rules \
-		obj/install-stamp \
-		$(patsubst %,obj.%/install-stamp,$(shell pyversions -r))
-	dh_install -a
-	dh_installdocs -a
-	dh_installchangelogs -a doc/changelog
-	dh_installexamples -a
-	find -path './debian/*/usr/share/doc/*/examples/*' -exec chmod a-x '{}' +
-	dh_installman -a
-	dh_python2 -a
-	dh_link -a
-	dh_compress -a
-	dh_fixperms -a
-	dh_strip -a
-	dh_makeshlibs -V 'libvigraimpex5 (>= 1.10.0)'
-	dh_shlibdeps
-	# See <http://lists.debian.org/debian-python/2010/07/msg00042.html>:
-	dh_numpy -p python-vigra
-	dh_installdeb -a
-	dh_gencontrol -a
-	dh_md5sums -a
-	dh_builddeb -a
-
-.PHONY: binary-indep
-binary-indep: build-indep
-	dh_testdir
-	dh_testroot
-	$(MAKE) -f debian/rules \
-		doc/vigra/build-stamp \
-		doc/vigranumpy/build-stamp
-	dh_installdocs -i -XLICENSE.txt -Xobjects.inv -Xdoctrees -X.buildinfo -Xbuild-stamp
-	cd debian/libvigraimpex-doc/usr/share/doc/libvigraimpex-doc/ && \
-		rm -rf html && \
-		mv vigra html && \
-		rm -f html/jquery.js && \
-		sed -r -i \
-			-e 's!(<a href=")LICENSE.txt(">)!\1/usr/share/doc/libvigraimpex-doc/copyright\2!g' \
-			html/index.html
-	cd debian/python-vigra-doc/usr/share/doc/python-vigra-doc/ && \
-		rm -rf html && \
-		mv vigranumpy html
-	dh_installchangelogs -i
-	dh_link -i
-ifeq "$(wildcard /usr/bin/dh_sphinxdoc)" ""
-	echo "sphinxdoc:Depends=libjs-jquery" >> debian/python-vigra-doc.substvars
-else
-	dh_sphinxdoc -p python-vigra-doc /usr/share/doc/python-vigra-doc/html/
-endif
-	dh_compress -i -X.js -X_sources
-	dh_fixperms -i
-	dh_installdeb -i
-	dh_gencontrol -i
-	dh_md5sums -i
-	dh_builddeb -i
-
-%/install-stamp: %/build-stamp
-	$(MAKE) -C $(dir $(@)) install DESTDIR=$(CURDIR)/debian/tmp/
-	touch $(@)
-
-doc/vigra/build-stamp: obj/build-stamp
-	$(MAKE) doc_cpp -C obj/
-	touch $(@)
-
-doc/vigranumpy/build-stamp: obj.$(shell pyversions -d)/build-stamp doc/vigra/build-stamp
-	ln -sf $(CURDIR)/vigranumpy/docsrc/c_api_replaces.txt obj.$(shell pyversions -d)/vigranumpy/docsrc/
-	$(MAKE) doc_python -C obj.$(shell pyversions -d)/
-	touch $(@)
-
-get-orig-source:
-	uscan --verbose # --repack-compression xy
-
-# clean target
-# ============
-
-.PHONY: clean
-clean:
-	dh_testdir
-	dh_clean
-	rm -rf obj*/
-	if [ -d doc/ ] ; then find doc/ -type f -delete ; fi
-
-.NOTPARALLEL:
-
-# vim:ts=4 sw=4 noet
diff --git a/debian/source/format b/debian/source/format
deleted file mode 100644
index 163aaf8..0000000
--- a/debian/source/format
+++ /dev/null
@@ -1 +0,0 @@
-3.0 (quilt)
diff --git a/debian/vigra-config.1 b/debian/vigra-config.1
deleted file mode 100644
index 38c2371..0000000
--- a/debian/vigra-config.1
+++ /dev/null
@@ -1,28 +0,0 @@
-.TH VIGRA-CONFIG "1" "January 2011" "vigra-config 1.7.1" "User Commands"
-.SH NAME
-vigra-config \- get information about the installed version of VIGRA
-.SH SYNOPSIS
-.B vigra-config
-[\fIoptions\fR]
-.SH OPTIONS
-.TP
-\fB\-h\fR, \fB\-\-help\fR
-Display help message and exit.
-.TP
-\fB\-\-version\fR
-Print version information.
-.TP
-\fB\-\-impex\-lib\fR, \fB\-\-libs\fR
-Print the linker flags that are needed to link with the \fBlibvigraimpex\fR library.
-.TP
-\fB\-\-fftw\-lib\fR
-Print the linker flags that are needed to link with the FFTW library.
-.TP
-\fB\-\-cppflags\fR
-Print the compiler flags that are needed to find the VIGRA include files.
-.TP
-\fB\-\-include\-path\fR, \fB\-\-includepath\fR
-Print path to VIGRA include files.
-.TP
-\fB\-\-docdir\fR
-Print path to VIGRA documentation.
diff --git a/debian/watch b/debian/watch
deleted file mode 100644
index e49a437..0000000
--- a/debian/watch
+++ /dev/null
@@ -1,3 +0,0 @@
-version=3
-opts=dversionmangle=s/\+dfsg[0-9]*// \
-   https://github.com/ukoethe/vigra/releases .*/vigra-(\d[\d.]+)-src.*\.(?:tar(?:\.gz|\.bz2)?|tgz)
diff --git a/doc/vigra/LICENSE.txt b/doc/vigra/LICENSE.txt
new file mode 100644
index 0000000..10c26ab
--- /dev/null
+++ b/doc/vigra/LICENSE.txt
@@ -0,0 +1,25 @@
+The VIGRA License
+=================
+(identical to the MIT X11 License)
+
+Permission is hereby granted, free of charge, to any person    
+obtaining a copy of this software and associated documentation 
+files (the "Software"), to deal in the Software without        
+restriction, including without limitation the rights to use,   
+copy, modify, merge, publish, distribute, sublicense, and/or   
+sell copies of the Software, and to permit persons to whom the 
+Software is furnished to do so, subject to the following       
+conditions:                                                    
+                                                               
+The above copyright notice and this permission notice shall be 
+included in all copies or substantial portions of the          
+Software.                                                      
+                                                               
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND 
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND       
+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT    
+HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,   
+WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING   
+FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR  
+OTHER DEALINGS IN THE SOFTWARE.                               
diff --git a/doc/vigra/dissolved_color.gif b/doc/vigra/dissolved_color.gif
new file mode 100644
index 0000000..d4492b5
Binary files /dev/null and b/doc/vigra/dissolved_color.gif differ
diff --git a/doc/vigra/documents/bullet.gif b/doc/vigra/documents/bullet.gif
new file mode 100644
index 0000000..ef2fab5
Binary files /dev/null and b/doc/vigra/documents/bullet.gif differ
diff --git a/doc/vigra/documents/pfeil.gif b/doc/vigra/documents/pfeil.gif
new file mode 100644
index 0000000..f2e3922
Binary files /dev/null and b/doc/vigra/documents/pfeil.gif differ
diff --git a/doc/vigra/documents/pfeilGross.gif b/doc/vigra/documents/pfeilGross.gif
new file mode 100644
index 0000000..6ad034d
Binary files /dev/null and b/doc/vigra/documents/pfeilGross.gif differ
diff --git a/doc/vigra/documents/tutorial_reference.pdf b/doc/vigra/documents/tutorial_reference.pdf
new file mode 100644
index 0000000..91a6a9b
Binary files /dev/null and b/doc/vigra/documents/tutorial_reference.pdf differ
diff --git a/doc/vigra/documents/vigra.gif b/doc/vigra/documents/vigra.gif
new file mode 100644
index 0000000..f8b2fbe
Binary files /dev/null and b/doc/vigra/documents/vigra.gif differ
diff --git a/doc/vigra/dynsections.js b/doc/vigra/dynsections.js
new file mode 100644
index 0000000..ed092c7
--- /dev/null
+++ b/doc/vigra/dynsections.js
@@ -0,0 +1,97 @@
+function toggleVisibility(linkObj)
+{
+ var base = $(linkObj).attr('id');
+ var summary = $('#'+base+'-summary');
+ var content = $('#'+base+'-content');
+ var trigger = $('#'+base+'-trigger');
+ var src=$(trigger).attr('src');
+ if (content.is(':visible')===true) {
+   content.hide();
+   summary.show();
+   $(linkObj).addClass('closed').removeClass('opened');
+   $(trigger).attr('src',src.substring(0,src.length-8)+'closed.png');
+ } else {
+   content.show();
+   summary.hide();
+   $(linkObj).removeClass('closed').addClass('opened');
+   $(trigger).attr('src',src.substring(0,src.length-10)+'open.png');
+ } 
+ return false;
+}
+
+function updateStripes()
+{
+  $('table.directory tr').
+       removeClass('even').filter(':visible:even').addClass('even');
+}
+function toggleLevel(level)
+{
+  $('table.directory tr').each(function(){ 
+    var l = this.id.split('_').length-1;
+    var i = $('#img'+this.id.substring(3));
+    var a = $('#arr'+this.id.substring(3));
+    if (l<level+1) {
+      i.attr('src','ftv2folderopen.png');
+      a.attr('src','ftv2mnode.png');
+      $(this).show();
+    } else if (l==level+1) {
+      i.attr('src','ftv2folderclosed.png');
+      a.attr('src','ftv2pnode.png');
+      $(this).show();
+    } else {
+      $(this).hide();
+    }
+  });
+  updateStripes();
+}
+
+function toggleFolder(id)
+{
+  //The clicked row
+  var currentRow = $('#row_'+id);
+  var currentRowImages = currentRow.find("img");
+
+  //All rows after the clicked row
+  var rows = currentRow.nextAll("tr");
+
+  //Only match elements AFTER this one (can't hide elements before)
+  var childRows = rows.filter(function() {
+    var re = new RegExp('^row_'+id+'\\d+_$', "i"); //only one sub
+    return this.id.match(re);
+  });
+
+  //First row is visible we are HIDING
+  if (childRows.filter(':first').is(':visible')===true) {
+    currentRowImages.filter("[id^=arr]").attr('src', 'ftv2pnode.png');
+    currentRowImages.filter("[id^=img]").attr('src', 'ftv2folderclosed.png');
+    rows.filter("[id^=row_"+id+"]").hide();
+  } else { //We are SHOWING
+    //All sub images
+    var childImages = childRows.find("img");
+    var childImg = childImages.filter("[id^=img]");
+    var childArr = childImages.filter("[id^=arr]");
+
+    currentRow.find("[id^=arr]").attr('src', 'ftv2mnode.png'); //open row
+    currentRow.find("[id^=img]").attr('src', 'ftv2folderopen.png'); //open row
+    childImg.attr('src','ftv2folderclosed.png'); //children closed
+    childArr.attr('src','ftv2pnode.png'); //children closed
+    childRows.show(); //show all children
+  }
+  updateStripes();
+}
+
+
+function toggleInherit(id)
+{
+  var rows = $('tr.inherit.'+id);
+  var img = $('tr.inherit_header.'+id+' img');
+  var src = $(img).attr('src');
+  if (rows.filter(':first').is(':visible')===true) {
+    rows.css('display','none');
+    $(img).attr('src',src.substring(0,src.length-8)+'closed.png');
+  } else {
+    rows.css('display','table-row'); // using show() causes jump in firefox
+    $(img).attr('src',src.substring(0,src.length-10)+'open.png');
+  }
+}
+
diff --git a/doc/vigra/formula.repository b/doc/vigra/formula.repository
new file mode 100644
index 0000000..9270a85
--- /dev/null
+++ b/doc/vigra/formula.repository
@@ -0,0 +1,139 @@
+\form#0:$ \sum_i x_i^N $
+\form#1:$ \sum_i |x_i|^N $
+\form#2:$ \frac{ \frac{1}{n}\sum_i (x_i-\hat{x})^3 }{ (\frac{1}{n}\sum_i (x_i-\hat{x})^2)^{3/2} } $
+\form#3:$ \frac{ \frac{1}{n}\sum_i (x_i-\bar{x})^4 }{ (\frac{1}{n} \sum_i(x_i-\bar{x})^2)^2 } - 3 $
+\form#4:\[ F_{\sigma}(r, \phi)=(i \cos \phi)^n (i \sin \phi)^m r^2 e^{-r^2 \sigma^2 / 2} \]
+\form#5:\[ C' = C_{max} \left(\frac{C_{RGB}}{C_{max}} \right)^{0.45} \qquad \]
+\form#6:$ C_{max} $
+\form#7:\[ C_{sRGB} = \left\{\begin{array}{ll} 12.92\,C_{RGB} & \textrm{ if }\frac{C_{RGB}}{C_{max}} \le 0.00304 \\ C_{max}\left( 1.055 \left(\frac{C_{RGB}}{C_{max}}\right)^{1/2.4}-0.055\right) & \textrm{ otherwise} \end{array} \right. \]
+\form#8:\[ R' = R_{max} \left(\frac{R}{R_{max}} \right)^{0.45} \qquad G' = G_{max} \left(\frac{G}{G_{max}} \right)^{0.45} \qquad B' = B_{max} \left(\frac{B}{B_{max}} \right)^{0.45} \]
+\form#9:$ R_{max} = G_{max} = B_{max} = 255 $
+\form#10:\[ C_{sRGB} = \left\{ \begin{array}{ll} 12.92\,C_{RGB} & \textrm{ if }\frac{C_{RGB}}{C_{max}} \le 0.0031308 \\ C_{max}\left( 1.055 \left(\frac{C_{RGB}}{C_{max}}\right)^{1/2.4}-0.055\right) & \textrm{ otherwise} \end{array} \right. \]
+\form#11:$ C_{max} = 255 $
+\form#12:\[ R = R_{max} \left(\frac{R'}{R_{max}} \right)^{1/0.45} \qquad G = G_{max} \left(\frac{G'}{G_{max}} \right)^{1/0.45} \qquad B = B_{max} \left(\frac{B'}{B_{max}} \right)^{1/0.45} \]
+\form#13:\[ C_{RGB} = \left\{\begin{array}{ll} C_{sRGB} / 12.92 & \textrm{if }\frac{C_{sRGB}}{C_{max}} \le 0.04045 \\ C_{max}\left( \frac{C_{sRGB}/C_{max}+0.055}{1.055}\right)^{2.4} & \textrm{otherwise} \end{array}\right. \]
+\form#14:$ C_{max}$
+\form#15:\[ \begin{array}{rcl} X & = & 0.412453\enspace R / R_{max} + 0.357580\enspace G / G_{max} + 0.180423\enspace B / B_{max}\\ Y & = & 0.212671\enspace R / R_{max} + 0.715160\enspace G / G_{max} + 0.072169\enspace B / B_{max} \\ Z & = & 0.019334\enspace R / R_{max} + 0.119193\enspace G / G_{max} + 0.950227\enspace B / B_{max} \end{array} \]
+\form#16:\[ R'G'B' \Rightarrow RGB \Rightarrow XYZ \]
+\form#17:\[ \begin{array}{rcl} R & = & R_{max} (3.2404813432\enspace X - 1.5371515163\enspace Y - 0.4985363262\enspace Z) \\ G & = & G_{max} (-0.9692549500\enspace X + 1.8759900015\enspace Y + 0.0415559266\enspace Z) \\ B & = & B_{max} (0.0556466391\enspace X - 0.2040413384\enspace Y + 1.0573110696\enspace Z) \end{array} \]
+\form#18:\[ XYZ \Rightarrow RGB \Rightarrow R'G'B' \]
+\form#19:\[ \begin{array}{rcl} L^{*} & = & 116 \left( \frac{Y}{Y_n} \right)^\frac{1}{3}-16 \quad \mbox{if} \quad 0.008856 < \frac{Y}{Y_n}\\ & & \\ L^{*} & = & 903.3\enspace \frac{Y}{Y_n} \quad \mbox{otherwise} \\ & & \\ u' & = & \frac{4 X}{X+15 Y + 3 Z}, \quad v' = \frac{9 Y}{X+15 Y + 3 Z}\\ & & \\ u^{*} & = & 13 L^{*} (u' - u_n'), \quad v^{*} = 13 L^{*} (v' - v_n') \end{array} \]
+\form#20:$(X_n, Y_n, Z_n) = (0.950456, 1.0, 1.088754)$
+\form#21:$u_n' = 0.197839, v_n'=0.468342$
+\form#22:$u', v'$
+\form#23:$L^{*}$
+\form#24:$u^{*}, v^{*}$
+\form#25:$\frac{216}{24389}$
+\form#26:$\frac{24389}{27}$
+\form#27:\[ \begin{array}{rcl} L^{*} & = & 116 \left( \frac{Y}{Y_n} \right)^\frac{1}{3}-16 \quad \mbox{if} \quad \frac{216}{24389} < \frac{Y}{Y_n}\\ & & \\ L^{*} & = & \frac{24389}{27} \enspace \frac{Y}{Y_n} \quad \mbox{otherwise} \\ & & \\ a^{*} & = & 500 \left[ \left( \frac{X}{X_n} \right)^\frac{1}{3} - \left( \frac{Y}{Y_n} \right)^\frac{1}{3} \right] \\ & & \\ b^{*} & = & 200 \left[ \left( \frac{Y}{Y_n} \right)^\frac{1}{3} - \left( \frac{Z}{Z_n} \right)^\frac{1}{3} \right] \\ \end{array} \]
+\form#28:$a^{*}, b^{*}$
+\form#29:\[ RGB \Rightarrow XYZ \Rightarrow L^*u^*v^* \]
+\form#30:\[ \begin{array}{rcl} 0 \leq & L^* & \leq 100 \\ -83.077 \leq & u^* & \leq 175.015 \\ -134.101 \leq & v^* & \leq 107.393 \end{array} \]
+\form#31:\[ RGB \Rightarrow XYZ \Rightarrow L^*a^*b^* \]
+\form#32:\[ \begin{array}{rcl} 0 \leq & L^* & \leq 100 \\ -86.1813 \leq & u^* & \leq 98.2352 \\ -107.862 \leq & v^* & \leq 94.4758 \end{array} \]
+\form#33:\[ R'G'B' \Rightarrow RGB \Rightarrow XYZ \Rightarrow L^*u^*v^* \]
+\form#34:\[ R'G'B' \Rightarrow RGB \Rightarrow XYZ \Rightarrow L^*a^*b^* \]
+\form#35:\[ \begin{array}{rcl} Y' & = & 0.299\enspace R / R_{max} + 0.587\enspace G / G_{max} + 0.114\enspace B / B_{max}\\ Pb & = & -0.1687358916\enspace R / R_{max} + 0.3312641084\enspace G / G_{max} + 0.5\enspace B / B_{max} \\ Pr & = & 0.5\enspace R / R_{max} + 0.4186875892\enspace G / G_{max} + 0.0813124108\enspace B / B_{max} \end{array} \]
+\form#36:\[ \begin{array}{rcl} 0 \leq & Y' & \leq 1 \\ -0.5 \leq & Pb & \leq 0.5 \\ -0.5 \leq & Pr & \leq 0.5 \end{array} \]
+\form#37:\[ \begin{array}{rcl} Y' & = & 0.299\enspace R / R_{max} + 0.587\enspace G / G_{max} + 0.114\enspace B / B_{max}\\ I & = & 0.596\enspace R / R_{max} - 0.274\enspace G / G_{max} - 0.322\enspace B / B_{max} \\ Q & = & 0.212\enspace R / R_{max} - 0.523\enspace G / G_{max} + 0.311\enspace B / B_{max} \end{array} \]
+\form#38:\[ \begin{array}{rcl} 0 \leq & Y' & \leq 1 \\ -0.596 \leq & I & \leq 0.596 \\ -0.523 \leq & Q & \leq 0.523 \end{array} \]
+\form#39:\[ \begin{array}{rcl} Y' & = & 0.299\enspace R / R_{max} + 0.587\enspace G / G_{max} + 0.114\enspace B / B_{max}\\ U & = & -0.147\enspace R / R_{max} - 0.289\enspace G / G_{max} + 0.436\enspace B / B_{max} \\ V & = & 0.615\enspace R / R_{max} - 0.515\enspace G / G_{max} - 0.100\enspace B / B_{max} \end{array} \]
+\form#40:\[ \begin{array}{rcl} 0 \leq & Y' & \leq 1 \\ -0.436 \leq & U & \leq 0.436 \\ -0.615 \leq & V & \leq 0.615 \end{array} \]
+\form#41:\[ \begin{array}{rcl} 16\leq & Y' & \leq 235 \\ 16 \leq & Cb & \leq 240 \\ 16 \leq & Cr & \leq 240 \end{array} \]
+\form#42:\[ \sqrt{|\nabla red|^2 + |\nabla green|^2 + |\nabla blue|^2} \]
+\form#43:$|\nabla red|^2$
+\form#44:\[ \mbox{\rm Hessian}(I) = \left( \begin{array}{cc} G_{xx} \ast I & G_{xy} \ast I \\ G_{xy} \ast I & G_{yy} \ast I \end{array} \right) \]
+\form#45:$G_{xx}, G_{xy}, G_{yy}$
+\form#46:$\ast$
+\form#47:\[ \mbox{\rm StructurTensor}(I) = \left( \begin{array}{cc} G \ast (I_x I_x) & G \ast (I_x I_y) \\ G \ast (I_x I_y) & G \ast (I_y I_y) \end{array} \right) = \left( \begin{array}{cc} A & C \\ C & B \end{array} \right) \]
+\form#48:$G$
+\form#49:$I_x, I_y$
+\form#50:$I_x I_x$
+\form#51:$G \ast (I_x I_x)$
+\form#52:$G \ast (I_x I_y)$
+\form#53:$G \ast (I_y I_y)$
+\form#54:\[ \mbox{\rm CornerResponse} = \mbox{\rm det(StructureTensor)} - 0.04 \mbox{\rm tr(StructureTensor)}^2 = A B - C^2 - 0.04 (A + B)^2 \]
+\form#55:\[ \mbox{\rm FoerstnerCornerStrength} = \frac{\mbox{\rm det(StructureTensor)}}{\mbox{\rm tr(StructureTensor)}} = \frac{A B - C^2}{A + B} \]
+\form#56:\[ \mbox{\rm RohrCornerStrength} = \mbox{\rm det(StructureTensor)} = A B - C^2 \]
+\form#57:\[ f_{\sigma,n}(x)=\frac{\partial^n}{\partial x^n} \frac{1}{\sqrt{2\pi}\sigma}e^{-\frac{x^2}{2\sigma^2}} \]
+\form#58:\[ \lambda_{1,2} = \frac{1}{2}\left(a_{00} + a_{11} \pm \sqrt{(a_{00} - a_{11})^2 + 4 a_{01}^2}\right) \]
+\form#59:\[ \mbox{F}(x, k) = \int_0^x \frac{1}{\sqrt{1 - k^2 \sin(t)^2}} dt \]
+\form#60:\[ \mbox{E}(x, k) = \int_0^x \sqrt{1 - k^2 \sin(t)^2} dt \]
+\form#61:$1/w^{n}$
+\form#62:$w$
+\form#63:$n$
+\form#64:$\sigma$
+\form#65:$\sqrt{\sigma_\mathrm{eff}^2 - \sigma_\mathrm{D}^2}\Big/w$
+\form#66:$\sigma_\mathrm{eff}$
+\form#67:$\sigma_\mathrm{D}$
+\form#68:${\rm stepSize}^{-n}$
+\form#69:$\sqrt{{\rm sigma}^{2} - {\rm resolutionStdDev}^{2}}$
+\form#70:\[ \frac{\partial}{\partial t} u = \frac{\partial}{\partial x} \left( g(|\nabla u|) \frac{\partial}{\partial x} u \right) \]
+\form#71:$t = s^2$
+\form#72:\[ g(|\nabla u|) = 1 - \exp{\left(\frac{-3.315}{(|\nabla u| / thresh)^4}\right)} \]
+\form#73:\begin{eqnarray*} \mbox{minimize } &\,& \frac{1}{2} \mbox{\bf x}'\,\mbox{\bf G}\, \mbox{\bf x} + \mbox{\bf g}'\,\mbox{\bf x} \\ \mbox{subject to} &\,& \mbox{\bf C}_E\, \mbox{\bf x} = \mbox{\bf c}_e \\ &\,& \mbox{\bf C}_I\,\mbox{\bf x} \ge \mbox{\bf c}_i \end{eqnarray*}
+\form#74:\[ \begin{array}{rcl} a_{i, causal} & = & source_i + b1 * a_{i-1, causal} + b2 * a_{i-2, causal} \\ a_{i, anticausal} & = & source_i + b1 * a_{i+1, anticausal} + b2 * a_{i+2, anticausal} \\ dest_i & = & \frac{1 - b1 - b2}{1 + b1 + b2}(a_{i, causal} + a_{i, anticausal} - source_i) \end{array} \]
+\form#75:\[ \tilde \textrm{\bf p} = \textrm{argmin}_{\textrm{\bf p}} \sum_i \left( y_i - f(\textrm{\bf x}_i; \textrm{\bf p}) \right)^2 \]
+\form#76:$f(\textrm{\bf x}; \textrm{\bf p})$
+\form#77:$\textrm{\bf x}$
+\form#78:$\textrm{\bf p}$
+\form#79:$(\textrm{\bf x}_i; y_i)$
+\form#80:\[ f(x ; a, s, b) = a \exp\left(-\frac{x^2}{2 s^2}\right) + b \]
+\form#81:$(x_i, y_i)$
+\form#82:$\sum_i \left(y_i - f(x_i; a,s,b)\right)^2$
+\form#83:\[ \tilde \textrm{\bf x} = \textrm{argmin} \left|\left|\textrm{\bf A} \textrm{\bf x} - \textrm{\bf b}\right|\right|_2^2 \]
+\form#84:\[ \tilde \textrm{\bf x} = \textrm{argmin} \left(\textrm{\bf A} \textrm{\bf x} - \textrm{\bf b}\right)^T \textrm{diag}(\textrm{\bf weights}) \left(\textrm{\bf A} \textrm{\bf x} - \textrm{\bf b}\right) \]
+\form#85:\[ \tilde \textrm{\bf x} = \textrm{argmin} \left|\left|\textrm{diag}(\textrm{\bf weights})^{1/2}\textrm{\bf A} \textrm{\bf x} - \textrm{diag}(\textrm{\bf weights})^{1/2} \textrm{\bf b}\right|\right|_2^2 \]
+\form#86:\[ \tilde \textrm{\bf x} = \textrm{argmin} \left|\left|\textrm{\bf A} \textrm{\bf x} - \textrm{\bf b}\right|\right|_2^2 + \lambda \textrm{\bf x}^T\textrm{\bf x} \]
+\form#87:\[ \tilde \textrm{\bf x} = \textrm{argmin} \left(\textrm{\bf A} \textrm{\bf x} - \textrm{\bf b}\right)^T \textrm{diag}(\textrm{\bf weights}) \left(\textrm{\bf A} \textrm{\bf x} - \textrm{\bf b}\right) + \lambda \textrm{\bf x}^T\textrm{\bf x} \]
+\form#88:\[ \tilde \textrm{\bf x} = \textrm{argmin} \left|\left|\textrm{diag}(\textrm{\bf weights})^{1/2}\textrm{\bf A} \textrm{\bf x} - \textrm{diag}(\textrm{\bf weights})^{1/2} \textrm{\bf b}\right|\right|_2^2 + \lambda \textrm{\bf x}^T\textrm{\bf x} \]
+\form#89:\[ \tilde \textrm{\bf x} = \textrm{argmin} \left|\left|\textrm{\bf A} \textrm{\bf x} - \textrm{\bf b}\right|\right|_2^2 \textrm{ subject to } \left|\left|\textrm{\bf x}\right|\right|_1\le s \]
+\form#90:\[ \tilde \textrm{\bf x} = \textrm{argmin} \left|\left|\textrm{\bf A} \textrm{\bf x} - \textrm{\bf b}\right|\right|_2^2 \textrm{ subject to } \left|\left|\textrm{\bf x}\right|\right|_1\le s \textrm{ and } \textrm{\bf x}\ge \textrm{\bf 0} \]
+\form#91:$\textrm{\bf x}(s=0)$
+\form#92:$\textrm{\bf x}(s=\infty)$
+\form#93:\[ \tilde \textrm{\bf x} = \textrm{argmin} \left|\left|\textrm{\bf A} \textrm{\bf x} - \textrm{\bf b}\right|\right|_2^2 \textrm{ subject to } \textrm{\bf x} \ge \textrm{\bf 0} \]
+\form#94:\[ f_{m,h}(x) = \left\{ \begin{array}{ll} \frac{1}{2m}\sin(\pi x)\cot(\pi x / (2 m))(h + (1-h)\cos(\pi x/m)) & |x| \leq m \\ 0 & \mbox{otherwise} \end{array}\right. \]
+\form#95:\[ \sum_{i=left()}^{right()} \frac{(-i)^{order}kernel[i]}{order!} = norm \]
+\form#96:\[ B_0(x) = \left\{ \begin{array}{ll} 1 & -\frac{1}{2} \leq x < \frac{1}{2} \\ 0 & \mbox{otherwise} \end{array}\right. \]
+\form#97:\[ B_n(x) = B_0(x) * B_{n-1}(x) \]
+\form#98:\[ f(x) = \left\{ \begin{array}{ll} \frac{3}{2}x^3 - \frac{5}{2}x^2 + 1 & |x| \leq 1 \\ -\frac{1}{2}x^3 + \frac{5}{2}x^2 -4x + 2 & |x| \leq 2 \\ 0 & \mbox{otherwise} \end{array}\right. \]
+\form#99:\[ \begin{array}{rcl} V_1 & = & \frac{PixelValue - min}{max - min} \\ V_2 & = & V_1^\frac{1}{brightness} \\ V_3 & = & 2 V_2 - 1 \\ V_4 & = & \left\lbrace \begin{array}{l} V_3^\frac{1}{contrast} \mbox{\rm \quad if } V_3 \ge 0 \\ - (-V_3)^\frac{1}{contrast} \mbox{\rm \quad otherwise} \end{array} \right. \\ Result & = & \frac{V_4 + 1}{2} (max - min) + min \end{array} \]
+\form#100:\[ \begin{array}{rcl} V_1 & = & \frac{PixelValue - min}{max - min} \\ V_2 & = & V_1^{gamma} \\ Result & = & V_2 (max - min) + min \end{array} \]
+\form#101:\[ \min_u \int_\Omega \frac{1}{2} (u-f)^2\;dx + \alpha TV(u)\qquad\qquad (1) \]
+\form#102:$ f=f(x)$
+\form#103:$ u=u(x)$
+\form#104:$ \alpha \ge 0 $
+\form#105:$ TV(u)$
+\form#106:$ \ge 0 $
+\form#107:$ v $
+\form#108:$ \varphi $
+\form#109:$ v(x)=(\cos(\varphi(x)),\sin(\varphi(x)))^\top $
+\form#110:$ \alpha $
+\form#111:$ \beta $
+\form#112:$ \alpha_{par}$
+\form#113:$ \beta_{par}$
+\form#114:$ \alpha(x)= \alpha_{par}$
+\form#115:$ \alpha(x)= \beta_{par}$
+\form#116:$ \beta(x)=\beta_{par}$
+\form#117:\[ \min_u \int_\Omega \frac{1}{2} (u-f)^2 + \sqrt{\nabla u^\top A \nabla u}\;dx\qquad\qquad(2) \]
+\form#118:$ \nabla u $
+\form#119:$ A $
+\form#120:$ \phi $
+\form#121:$ \alpha>0 $
+\form#122:$ \beta>0 $
+\form#123:$ \phi,\alpha,\beta $
+\form#124:$ A=A(u)$
+\form#125:\[ \min_u \int_\Omega \frac{1}{2} (u-f)^2 + \sqrt{\nabla u^\top A \nabla u} + \gamma |Hu|_F\;dx \qquad\qquad (3) \]
+\form#126:$ |Hu|_F $
+\form#127:$ u $
+\form#128:$ \phi,\alpha, \beta $
+\form#129:$ \gamma>0 $
+\form#130:$ \ge 0$
+\form#131:$ A$
+\form#132:$ Hu$
+\form#133:\[ \mathrm{features} \approx \mathrm{fz} * \mathrm{zv} \]
+\form#134:$f_{ij}$
+\form#135:$h_i$
+\form#136:$c_j$
+\form#137:\[ f_{ij} = h_i \cdot c_j \]
+\form#138:\[ \left( \begin{array}{ccc} \frac{1}{9} & \frac{1}{9} & \frac{1}{9} \\[1ex] \frac{1}{9} & \frac{1}{9} & \frac{1}{9} \\[1ex] \frac{1}{9} & \frac{1}{9} & \frac{1}{9} \end{array} \right) = \left( \begin{array}{c} \frac{1}{3} \\[1ex] \frac{1}{3} \\[1ex] \frac{1}{3} \end{array} \right) \cdot \left( \begin{array}{ccc} \frac{1}{3} & \frac{1}{3} & \frac{1}{3} \end{array} \right) \]
diff --git a/doc/vigra/jquery.js b/doc/vigra/jquery.js
new file mode 100644
index 0000000..63939e7
--- /dev/null
+++ b/doc/vigra/jquery.js
@@ -0,0 +1,8 @@
+/*! jQuery v1.7.1 jquery.com | jquery.org/license */
+(function(a,b){function cy(a){return f.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:!1}function cv(a){if(!ck[a]){var b=c.body,d=f("<"+a+">").appendTo(b),e=d.css("display");d.remove();if(e==="none"||e===""){cl||(cl=c.createElement("iframe"),cl.frameBorder=cl.width=cl.height=0),b.appendChild(cl);if(!cm||!cl.createElement)cm=(cl.contentWindow||cl.contentDocument).document,cm.write((c.compatMode==="CSS1Compat"?"<!doctype html>":"")+"<html><body>"),cm.close();d=cm.createElement( [...]
+{g=c.apply(this,arguments),g&&f.isFunction(g.promise)?g.promise().then(d.resolve,d.reject,d.notify):d[e+"With"](this===i?d:this,[g])}):i[a](d[e])})}).promise()},promise:function(a){if(a==null)a=h;else for(var b in h)a[b]=h[b];return a}},i=h.promise({}),j;for(j in g)i[j]=g[j].fire,i[j+"With"]=g[j].fireWith;i.done(function(){e="resolved"},c.disable,d.lock).fail(function(){e="rejected"},b.disable,d.lock),a&&a.call(i,i);return i},when:function(a){function m(a){return function(b){e[a]=argumen [...]
+f.event={add:function(a,c,d,e,g){var h,i,j,k,l,m,n,o,p,q,r,s;if(!(a.nodeType===3||a.nodeType===8||!c||!d||!(h=f._data(a)))){d.handler&&(p=d,d=p.handler),d.guid||(d.guid=f.guid++),j=h.events,j||(h.events=j={}),i=h.handle,i||(h.handle=i=function(a){return typeof f!="undefined"&&(!a||f.event.triggered!==a.type)?f.event.dispatch.apply(i.elem,arguments):b},i.elem=a),c=f.trim(I(c)).split(" ");for(k=0;k<c.length;k++){l=A.exec(c[k])||[],m=l[1],n=(l[2]||"").split(".").sort(),s=f.event.special[m]| [...]
+&&m.filter(b,a,!0)}},"":function(a,b,c){var d,f=e++,g=x;typeof b=="string"&&!l.test(b)&&(b=b.toLowerCase(),d=b,g=w),g("parentNode",b,f,a,d,c)},"~":function(a,b,c){var d,f=e++,g=x;typeof b=="string"&&!l.test(b)&&(b=b.toLowerCase(),d=b,g=w),g("previousSibling",b,f,a,d,c)}},find:{ID:function(a,b,c){if(typeof b.getElementById!="undefined"&&!c){var d=b.getElementById(a[1]);return d&&d.parentNode?[d]:[]}},NAME:function(a,b){if(typeof b.getElementsByName!="undefined"){var c=[],d=b.getElementsBy [...]
+f.cleanData([d])),d.parentNode&&d.parentNode.removeChild(d);return this},empty:function()
+{for(var a=0,b;(b=this[a])!=null;a++){b.nodeType===1&&f.cleanData(b.getElementsByTagName("*"));while(b.firstChild)b.removeChild(b.firstChild)}return this},clone:function(a,b){a=a==null?!1:a,b=b==null?a:b;return this.map(function(){return f.clone(this,a,b)})},html:function(a){if(a===b)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(W,""):null;if(typeof a=="string"&&!ba.test(a)&&(f.support.leadingWhitespace||!X.test(a))&&!bg[(Z.exec(a)||["",""])[1].toLowerCase()]){a=a.replac [...]
+{if(!c.crossDomain||f.support.cors){var d;return{send:function(e,g){var h=c.xhr(),i,j;c.username?h.open(c.type,c.url,c.async,c.username,c.password):h.open(c.type,c.url,c.async);if(c.xhrFields)for(j in c.xhrFields)h[j]=c.xhrFields[j];c.mimeType&&h.overrideMimeType&&h.overrideMimeType(c.mimeType),!c.crossDomain&&!e["X-Requested-With"]&&(e["X-Requested-With"]="XMLHttpRequest");try{for(j in e)h.setRequestHeader(j,e[j])}catch(k){}h.send(c.hasContent&&c.data||null),d=function(a,e){var j,k,l,m, [...]
diff --git a/doc/vigra/lenna_color.gif b/doc/vigra/lenna_color.gif
new file mode 100644
index 0000000..36515b6
Binary files /dev/null and b/doc/vigra/lenna_color.gif differ
diff --git a/doc/vigra/lenna_color_small.gif b/doc/vigra/lenna_color_small.gif
new file mode 100644
index 0000000..dc43241
Binary files /dev/null and b/doc/vigra/lenna_color_small.gif differ
diff --git a/doc/vigra/lenna_composite_color.gif b/doc/vigra/lenna_composite_color.gif
new file mode 100644
index 0000000..a8bcdd5
Binary files /dev/null and b/doc/vigra/lenna_composite_color.gif differ
diff --git a/doc/vigra/lenna_gray.gif b/doc/vigra/lenna_gray.gif
new file mode 100644
index 0000000..e8faa53
Binary files /dev/null and b/doc/vigra/lenna_gray.gif differ
diff --git a/doc/vigra/lenna_inverted.gif b/doc/vigra/lenna_inverted.gif
new file mode 100644
index 0000000..82b8dd6
Binary files /dev/null and b/doc/vigra/lenna_inverted.gif differ
diff --git a/doc/vigra/lenna_mirror_horizontal.gif b/doc/vigra/lenna_mirror_horizontal.gif
new file mode 100644
index 0000000..10be4a9
Binary files /dev/null and b/doc/vigra/lenna_mirror_horizontal.gif differ
diff --git a/doc/vigra/lenna_mirror_vertical.gif b/doc/vigra/lenna_mirror_vertical.gif
new file mode 100644
index 0000000..17eeebc
Binary files /dev/null and b/doc/vigra/lenna_mirror_vertical.gif differ
diff --git a/doc/vigra/lenna_small.gif b/doc/vigra/lenna_small.gif
new file mode 100644
index 0000000..0009766
Binary files /dev/null and b/doc/vigra/lenna_small.gif differ
diff --git a/doc/vigra/lenna_smoothed.gif b/doc/vigra/lenna_smoothed.gif
new file mode 100644
index 0000000..345b03c
Binary files /dev/null and b/doc/vigra/lenna_smoothed.gif differ
diff --git a/doc/vigra/lenna_stripes.gif b/doc/vigra/lenna_stripes.gif
new file mode 100644
index 0000000..8ae9413
Binary files /dev/null and b/doc/vigra/lenna_stripes.gif differ
diff --git a/doc/vigra/lenna_sub.gif b/doc/vigra/lenna_sub.gif
new file mode 100644
index 0000000..454487d
Binary files /dev/null and b/doc/vigra/lenna_sub.gif differ
diff --git a/doc/vigra/lenna_transposed_major.gif b/doc/vigra/lenna_transposed_major.gif
new file mode 100644
index 0000000..4dc8dbf
Binary files /dev/null and b/doc/vigra/lenna_transposed_major.gif differ
diff --git a/doc/vigra/lenna_transposed_minor.gif b/doc/vigra/lenna_transposed_minor.gif
new file mode 100644
index 0000000..aa025e3
Binary files /dev/null and b/doc/vigra/lenna_transposed_minor.gif differ
diff --git a/doc/vigra/oi_small.jpg b/doc/vigra/oi_small.jpg
new file mode 100644
index 0000000..eb6f1c6
Binary files /dev/null and b/doc/vigra/oi_small.jpg differ
diff --git a/doc/vigra/tabs.css b/doc/vigra/tabs.css
new file mode 100644
index 0000000..9cf578f
--- /dev/null
+++ b/doc/vigra/tabs.css
@@ -0,0 +1,60 @@
+.tabs, .tabs2, .tabs3 {
+    background-image: url('tab_b.png');
+    width: 100%;
+    z-index: 101;
+    font-size: 13px;
+    font-family: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif;
+}
+
+.tabs2 {
+    font-size: 10px;
+}
+.tabs3 {
+    font-size: 9px;
+}
+
+.tablist {
+    margin: 0;
+    padding: 0;
+    display: table;
+}
+
+.tablist li {
+    float: left;
+    display: table-cell;
+    background-image: url('tab_b.png');
+    line-height: 36px;
+    list-style: none;
+}
+
+.tablist a {
+    display: block;
+    padding: 0 20px;
+    font-weight: bold;
+    background-image:url('tab_s.png');
+    background-repeat:no-repeat;
+    background-position:right;
+    color: #283A5D;
+    text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9);
+    text-decoration: none;
+    outline: none;
+}
+
+.tabs3 .tablist a {
+    padding: 0 10px;
+}
+
+.tablist a:hover {
+    background-image: url('tab_h.png');
+    background-repeat:repeat-x;
+    color: #fff;
+    text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0);
+    text-decoration: none;
+}
+
+.tablist li.current a {
+    background-image: url('tab_a.png');
+    background-repeat:repeat-x;
+    color: #fff;
+    text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0);
+}
diff --git a/doc/vigra/testimage.gif b/doc/vigra/testimage.gif
new file mode 100644
index 0000000..a8a736f
Binary files /dev/null and b/doc/vigra/testimage.gif differ
diff --git a/doc/vigra/testimage.jpg b/doc/vigra/testimage.jpg
new file mode 100644
index 0000000..22d0512
Binary files /dev/null and b/doc/vigra/testimage.jpg differ
diff --git a/vigranumpy/docsrc/_static/vigra-icon.ico b/doc/vigra/vigra-icon.ico
similarity index 100%
rename from vigranumpy/docsrc/_static/vigra-icon.ico
rename to doc/vigra/vigra-icon.ico
diff --git a/doc/vigra/vigra.css b/doc/vigra/vigra.css
new file mode 100644
index 0000000..34458e3
--- /dev/null
+++ b/doc/vigra/vigra.css
@@ -0,0 +1,457 @@
+BODY,H1,H2,H3,H4,H5,H6,P,CENTER,TD,TH,UL,DL,DIV {
+    font-family: Geneva, Arial, Helvetica, sans-serif;
+}
+BODY,TD {
+       font-size: 90%;
+}
+H1 {
+    background-color: #e0d0a0;
+    padding: 0.5em;
+    text-align: center;
+    font-size: 160%;
+}
+H2 {
+       font-size: 120%;
+}
+H2.details_section {
+    background-color: #e0d0a0;
+    padding: 0.5em;
+    font-size: 140%;
+    text-align: center;
+}
+H3.details_section {
+    background-color: #e0d0a0;
+    padding: 0.5em;
+    border-width: 1px;
+    border-style: solid;
+    border-color: #c8aa54;
+    -moz-border-radius: 8px 8px 8px 8px;
+}
+.main_heading {
+    background-color: #e0d0a0;
+    padding: 1em;
+    text-align: center;
+    font-size: 200%;
+    border: 0px;
+    padding: 5px;
+    font-weight: bold;
+}
+.ingroups {
+    font-size: 60%;
+}
+H3 {
+       font-size: 100%;
+}
+table.function_index {
+    background-color: #e0d0a0;
+    padding: 0.3em;
+    font-size: 120%;
+    width: 100%;
+}
+CAPTION { font-weight: bold }
+div.line {
+	font-family: monospace, fixed;
+        font-size: 13px;
+	min-height: 13px;
+	line-height: 1.0;
+	text-wrap: unrestricted;
+	white-space: -moz-pre-wrap; /* Moz */
+	white-space: -pre-wrap;     /* Opera 4-6 */
+	white-space: -o-pre-wrap;   /* Opera 7 */
+	white-space: pre-wrap;      /* CSS3  */
+	word-wrap: break-word;      /* IE 5.5+ */
+	text-indent: -53px;
+	padding-left: 53px;
+	padding-bottom: 0px;
+	margin: 0px;
+	-webkit-transition-property: background-color, box-shadow;
+	-webkit-transition-duration: 0.5s;
+	-moz-transition-property: background-color, box-shadow;
+	-moz-transition-duration: 0.5s;
+	-ms-transition-property: background-color, box-shadow;
+	-ms-transition-duration: 0.5s;
+	-o-transition-property: background-color, box-shadow;
+	-o-transition-duration: 0.5s;
+	transition-property: background-color, box-shadow;
+	transition-duration: 0.5s;
+}
+DIV.qindex {
+    width: 100%;
+    background-color: #e0d0a0;
+    border: 1px solid #c8aa54;
+    text-align: center;
+    margin: 2px;
+    padding: 2px;
+    line-height: 140%;
+}
+DIV.nav {
+    width: 100%;
+    background-color: #e8eef2;
+    border: 1px solid #c8aa54;
+    text-align: center;
+    margin: 2px;
+    padding: 2px;
+    line-height: 140%;
+}
+DIV.navtab {
+       background-color: #e8eef2;
+       border: 1px solid #c8aa54;
+       text-align: center;
+       margin: 2px;
+       margin-right: 15px;
+       padding: 2px;
+}
+TD.navtab {
+       font-size: 70%;
+}
+A.qindex {
+       text-decoration: none;
+       font-weight: bold;
+       color: #1A419D;
+}
+A.qindex:visited {
+       text-decoration: none;
+       font-weight: bold;
+       color: #1A419D
+}
+A.qindex:hover {
+    text-decoration: none;
+    background-color: #ddddff;
+}
+A.qindexHL {
+    text-decoration: none;
+    font-weight: bold;
+    background-color: #6666cc;
+    color: #ffffff;
+    border: 1px double #9295C2;
+}
+A.qindexHL:hover {
+    text-decoration: none;
+    background-color: #6666cc;
+    color: #ffffff;
+}
+A.qindexHL:visited { text-decoration: none; background-color: #6666cc; color: #ffffff }
+A.el { text-decoration: none; font-weight: bold }
+A:link { color: #0040b0; }
+A:visited { color: #a00040; }
+A:hover { text-decoration: none; background-color: #f2f2ff }
+A.anchor { color: #000000;   text-decoration: none; background-color: none; }
+A.elRef { font-weight: bold }
+A.code:link { text-decoration: none; font-weight: normal; color: #0000FF}
+A.code:visited { text-decoration: none; font-weight: normal; color: #0000FF}
+A.codeRef:link { font-weight: normal; color: #0000FF}
+A.codeRef:visited { font-weight: normal; color: #0000FF}
+code  { 
+/*    font-family: Lucida Console, monospace, fixed; */
+    font-family: monospace, fixed;
+    color: #303030; 
+    font-weight: bold;
+} 
+DL.el { margin-left: -1cm }
+.fragment {
+/*    font-family: Lucida Console, monospace, fixed; */
+    font-family: monospace, fixed;
+       font-size: 95%;
+}
+PRE.fragment {
+/*  border: 1px solid #c8aa54; */
+    border: 1px solid #dad0aa;
+    background-color: #fcfaf8;
+    margin-top: 4px;
+    margin-bottom: 4px;
+    margin-left: 2px;
+    margin-right: 8px;
+    padding-left: 6px;
+    padding-right: 6px;
+    padding-top: 4px;
+    padding-bottom: 4px;
+}
+DIV.fragment {
+    border: 1px solid #dad0aa;
+    background-color: #fcfaf8;
+    margin-top: 4px;
+    margin-bottom: 4px;
+    margin-left: 2px;
+    margin-right: 8px;
+    padding-left: 6px;
+    padding-right: 6px;
+    padding-top: 4px;
+    padding-bottom: 4px;
+}
+DIV.ah { background-color: black; font-weight: bold; color: #ffffff; margin-bottom: 3px; margin-top: 3px }
+
+DIV.groupHeader {
+       margin-left: 16px;
+       margin-top: 12px;
+       margin-bottom: 6px;
+       font-weight: bold;
+}
+DIV.groupText { margin-left: 16px; font-style: italic; font-size: 90% }
+BODY {
+    background: #f8f0e0;
+    color: black;
+    margin-right: 20px;
+    margin-left: 20px;
+}
+TD.indexkey {
+/*  background-color: #e8eef2; */
+    background-color: #f8f0e0;
+    font-weight: bold;
+    padding-right  : 10px;
+    padding-top    : 2px;
+    padding-left   : 10px;
+    padding-bottom : 2px;
+    margin-left    : 0px;
+    margin-right   : 0px;
+    margin-top     : 2px;
+    margin-bottom  : 2px;
+/*  border: 1px solid #CCCCCC; */
+    border: 1px solid #e0d0a0;
+}
+TD.indexvalue {
+/*  background-color: #e8eef2; */
+    background-color: #f8f0e0;
+    font-style: italic;
+    padding-right  : 10px;
+    padding-top    : 2px;
+    padding-left   : 10px;
+    padding-bottom : 2px;
+    margin-left    : 0px;
+    margin-right   : 0px;
+    margin-top     : 2px;
+    margin-bottom  : 2px;
+/*  border: 1px solid #CCCCCC; */
+    border: 1px solid #e0d0a0;
+}
+TR.memlist {
+   background-color: #f0f0f0;
+}
+P.formulaDsp { text-align: center; }
+IMG.formulaDsp { }
+IMG.formulaInl { vertical-align: middle; }
+SPAN.keyword       { color: #008000 }
+SPAN.keywordtype   { color: #604020 }
+SPAN.keywordflow   { color: #e08000 }
+SPAN.comment       { color: #800000 }
+SPAN.preprocessor  { color: #806020 }
+SPAN.stringliteral { color: #002080 }
+SPAN.charliteral   { color: #008080 }
+.mdescLeft {
+    padding: 0px 8px 4px 8px;
+    font-size: 80%;
+    font-style: italic;
+    background-color: #fcfaf8;
+    border-top: 1px none #dad0a8;
+    border-right: 1px none #dad0a8;
+    border-bottom: 1px none #dad0a8;
+    border-left: 1px none #dad0a8;
+    margin: 0px;
+}
+.mdescRight {
+    padding: 0px 8px 4px 8px; 
+    font-size: 80%;
+    font-style: italic;
+    background-color: #fcfaf8;
+    border-top: 1px none #dad0a8;
+    border-right: 1px none #dad0a8;
+    border-bottom: 1px none #dad0a8;
+    border-left: 1px none #dad0a8;
+    margin: 0px;
+}
+.memItemLeft {
+    padding: 1px 0px 0px 8px;
+    margin: 4px;
+    border-top-width: 1px;
+    border-right-width: 1px;
+    border-bottom-width: 1px;
+    border-left-width: 1px;
+    border-top-color: #dad0a8;
+    border-right-color: #dad0a8;
+    border-bottom-color: #dad0a8;
+    border-left-color: #dad0a8;
+    border-top-style: solid;
+    border-right-style: none;
+    border-bottom-style: none;
+    border-left-style: none;
+    background-color: #fcfaf8;
+    font-size: 80%;
+}
+.memItemRight {
+    padding: 1px 8px 0px 8px; 
+    margin: 4px;
+    border-top-width: 1px;
+    border-right-width: 1px;
+    border-bottom-width: 1px;
+    border-left-width: 1px;
+    border-top-color: #dad0a8;
+    border-right-color: #dad0a8;
+    border-bottom-color: #dad0a8;
+    border-left-color: #dad0a8;
+    border-top-style: solid;
+    border-right-style: none;
+    border-bottom-style: none;
+    border-left-style: none;
+    background-color: #fcfaf8;
+    font-size: 80%;
+}
+.memTemplItemLeft {
+    padding: 1px 0px 0px 8px; 
+    margin: 4px;
+    border-top-width: 1px;
+    border-right-width: 1px;
+    border-bottom-width: 1px;
+    border-left-width: 1px;
+    border-top-color: #dad0a8;
+    border-right-color: #dad0a8;
+    border-bottom-color: #dad0a8;
+    border-left-color: #dad0a8;
+    border-top-style: none;
+    border-right-style: none;
+    border-bottom-style: none;
+    border-left-style: none;
+    background-color: #fcfaf8;
+    font-size: 80%;
+}
+.memTemplItemRight {
+    padding: 1px 8px 0px 8px; 
+    margin: 4px;
+    border-top-width: 1px;
+    border-right-width: 1px;
+    border-bottom-width: 1px;
+    border-left-width: 1px;
+    border-top-color: #dad0a8;
+    border-right-color: #dad0a8;
+    border-bottom-color: #dad0a8;
+    border-left-color: #dad0a8;
+    border-top-style: none;
+    border-right-style: none;
+    border-bottom-style: none;
+    border-left-style: none;
+    background-color: #fcfaf8;
+    font-size: 80%;
+}
+.memTemplParams {
+    padding: 1px 0px 0px 8px; 
+    margin: 4px;
+    border-top-width: 1px;
+    border-right-width: 1px;
+    border-bottom-width: 1px;
+    border-left-width: 1px;
+    border-top-color: #dad0a8;
+    border-right-color: #dad0a8;
+    border-bottom-color: #dad0a8;
+    border-left-color: #dad0a8;
+    border-top-style: solid;
+    border-right-style: none;
+    border-bottom-style: none;
+    border-left-style: none;
+/*       color: #606060; */
+    background-color: #fcfaf8;
+    font-size: 80%;
+}
+.search     { color: #003399;
+              font-weight: bold;
+}
+FORM.search {
+              margin-bottom: 0px;
+              margin-top: 0px;
+}
+INPUT.search { font-size: 75%;
+               color: #000080;
+               font-weight: normal;
+               background-color: #e8eef2;
+}
+TD.tiny      { font-size: 75%;
+}
+a {
+    color: #1A41A8;
+}
+a:visited {
+    color: #2A3798;
+}
+.dirtab { padding: 4px;
+          border-collapse: collapse;
+          border: 1px solid #c8aa54;
+}
+TH.dirtab { background: #e8eef2;
+            font-weight: bold;
+}
+HR { height: 1px;
+     border: none;
+     border-top: 1px solid black;
+}
+
+/* Style for detailed member documentation */
+/*
+.memtemplate {
+  font-size: 80%;
+  color: #606060;
+  font-weight: normal;
+  margin-left: 3px;
+}
+*/
+.memtemplate {
+  white-space: nowrap;
+  font-weight: bold;
+}
+.memnav {
+  background-color: #e8eef2;
+  border: 1px solid #c8aa54;
+  text-align: center;
+  margin: 2px;
+  margin-right: 15px;
+  padding: 2px;
+}
+.memitem {
+/*  padding: 4px; */
+  padding: 0px 5px 0px 0px;
+/*  background-color: #eef3f5; */
+  background-color: #f8f0e0;
+  border-width: 1px;
+  border-style: solid;
+/*  border-color: #dedeee; */
+  border-color: #e0d0a0;
+  -moz-border-radius: 8px 8px 8px 8px;
+  margin-bottom: 20px;
+}
+.memname {
+  white-space: nowrap;
+  font-weight: bold;
+}
+.memdoc{
+  padding-left: 10px;
+}
+.memproto {
+  background-color: #e0d0a0;
+  width: 100%;
+  border-width: 1px;
+  border-style: solid;
+  border-color: #c8aa54;
+  font-weight: bold;
+  padding: 5px 0px 5px 5px; 
+  -moz-border-radius: 8px 8px 8px 8px;
+}
+.paramkey {
+  text-align: right;
+}
+.paramtype {
+  white-space: nowrap;
+}
+.paramname {
+  color: #602020;
+  font-style: italic;
+  white-space: nowrap;
+}
+/* End Styling for detailed member documentation */
+
+/* for the tree view */
+.ftvtree {
+    font-family: sans-serif;
+    margin:0.5em;
+}
+.directory { font-size: 9pt; font-weight: bold; }
+.directory h3 { margin: 0px; margin-top: 1em; font-size: 11pt; }
+.directory > h3 { margin-top: 0; }
+.directory p { margin: 0px; white-space: nowrap; }
+.directory div { display: none; margin: 0px; }
+.directory img { vertical-align: -30%; }
diff --git a/doc/vigra/vigra_1_8_2.css b/doc/vigra/vigra_1_8_2.css
new file mode 100644
index 0000000..fc2180d
--- /dev/null
+++ b/doc/vigra/vigra_1_8_2.css
@@ -0,0 +1,1622 @@
+/* Customized css version 1.8.2 */
+
+body, /*table, */div, p, dl { /*removed*/
+	font: 400 14px/19px Roboto,sans-serif;
+}
+
+/* @group Heading Levels */
+
+h1.groupheader {
+	font-size: 150%;
+}
+
+.title {
+	font-size: 150%;
+	font-weight: bold;
+	margin: 10px 2px;
+}
+
+h2.groupheader {
+	/*border-bottom: 1px solid #879ECB;*/ /*removed*/
+	/*border-top: 1px solid #879ECB;*/ /*added*/
+	/*color: #354C7B;*/ /*removed*/
+	font-size: 150%;
+	font-weight: normal;
+	margin-top: 1.75em;
+	padding-top: 8px;
+	padding-bottom: 4px;
+	width: 100%;
+}
+
+h3.groupheader {
+	font-size: 100%;
+}
+
+h1, h2, h3, h4, h5, h6 {
+	-webkit-transition: text-shadow 0.5s linear;
+	-moz-transition: text-shadow 0.5s linear;
+	-ms-transition: text-shadow 0.5s linear;
+	-o-transition: text-shadow 0.5s linear;
+	transition: text-shadow 0.5s linear;
+	/*margin-right: 15px;*/ /*removed*/
+}
+
+h1.glow, h2.glow, h3.glow, h4.glow, h5.glow, h6.glow {
+	text-shadow: 0 0 15px cyan;
+}
+
+dt {
+	font-weight: bold;
+}
+
+div.multicol {
+	-moz-column-gap: 1em;
+	-webkit-column-gap: 1em;
+	-moz-column-count: 3;
+	-webkit-column-count: 3;
+}
+
+p.startli, p.startdd, p.starttd {
+	margin-top: 2px;
+}
+
+p.endli {
+	margin-bottom: 0px;
+}
+
+p.enddd {
+	margin-bottom: 4px;
+}
+
+p.endtd {
+	margin-bottom: 2px;
+}
+
+/* @end */
+
+caption {
+	font-weight: bold;
+}
+
+span.legend {
+        font-size: 70%;
+        text-align: center;
+}
+
+h3.version {
+        font-size: 90%;
+        text-align: center;
+}
+
+div.qindex, div.navtab{
+	background-color: #EBEFF6;
+	border: 1px solid #A3B4D7;
+	text-align: center;
+}
+
+div.qindex, div.navpath {
+	width: 100%;
+	line-height: 140%;
+}
+
+div.navtab {
+	margin-right: 15px;
+}
+
+/* @group Link Styling */
+
+a {
+	color: #3D578C;
+	font-weight: normal;
+	text-decoration: none;
+}
+
+.contents a:visited {
+	color: #4665A2;
+}
+
+a:hover {
+	text-decoration: underline;
+}
+
+a.qindex {
+	font-weight: bold;
+}
+
+a.qindexHL {
+	font-weight: bold;
+	background-color: #9CAFD4;
+	color: #ffffff;
+	border: 1px double #869DCA;
+}
+
+.contents a.qindexHL:visited {
+        color: #ffffff;
+}
+
+a.el {
+	font-weight: bold;
+}
+
+a.elRef {
+}
+
+a.code, a.code:visited {
+	color: #4665A2; 
+}
+
+a.codeRef, a.codeRef:visited {
+	color: #4665A2; 
+}
+
+/* @end */
+
+dl.el {
+	margin-left: -1cm;
+}
+
+pre.fragment {
+        border: 1px solid #C4CFE5;
+        background-color: #FBFCFD;
+        padding: 4px 6px;
+        margin: 4px 8px 4px 2px;
+        overflow: auto;
+        word-wrap: break-word;
+        font-size:  9pt;
+        line-height: 125%;
+        font-family: monospace, fixed;
+        font-size: 105%;
+}
+
+div.fragment {
+        padding: 4px;
+        margin: 4px;
+	background-color: #FBFCFD;
+	/*border: 1px solid #C4CFE5;*/
+	border: 1px solid #dad0aa; /*added*/
+}
+
+div.line {
+	font-family: monospace, fixed;
+        font-size: 13px;
+	min-height: 17px; /*changed 13*/
+	line-height: 1.0;
+	text-wrap: unrestricted;
+	white-space: -moz-pre-wrap; /* Moz */
+	white-space: -pre-wrap;     /* Opera 4-6 */
+	white-space: -o-pre-wrap;   /* Opera 7 */
+	white-space: pre-wrap;      /* CSS3  */
+	word-wrap: break-word;      /* IE 5.5+ */
+	text-indent: -53px; /*changed -53*/
+	padding-left: 53px;
+	padding-bottom: 0px;
+	margin: 0px;
+	-webkit-transition-property: background-color, box-shadow;
+	-webkit-transition-duration: 0.5s;
+	-moz-transition-property: background-color, box-shadow;
+	-moz-transition-duration: 0.5s;
+	-ms-transition-property: background-color, box-shadow;
+	-ms-transition-duration: 0.5s;
+	-o-transition-property: background-color, box-shadow;
+	-o-transition-duration: 0.5s;
+	transition-property: background-color, box-shadow;
+	transition-duration: 0.5s;
+}
+
+div.line.glow {
+	background-color: cyan;
+	box-shadow: 0 0 10px cyan;
+}
+
+
+span.lineno {
+	padding-right: 4px;
+	text-align: right;
+	/*border-right: 2px solid #0F0;*/ /*removed*/
+	/*background-color: #E8E8E8;*/ /*removed*/
+        white-space: pre; 
+}
+span.lineno a {
+	background-color: #D8D8D8;
+}
+
+span.lineno a:hover {
+	background-color: #C8C8C8;
+}
+
+div.ah {
+	background-color: black;
+	font-weight: bold;
+	color: #ffffff;
+	margin-bottom: 3px;
+	margin-top: 3px;
+	padding: 0.2em;
+	border: solid thin #333;
+	border-radius: 0.5em;
+	-webkit-border-radius: .5em;
+	-moz-border-radius: .5em;
+	box-shadow: 2px 2px 3px #999;
+	-webkit-box-shadow: 2px 2px 3px #999;
+	-moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px;
+	background-image: -webkit-gradient(linear, left top, left bottom, from(#eee), to(#000),color-stop(0.3, #444));
+	background-image: -moz-linear-gradient(center top, #eee 0%, #444 40%, #000);
+}
+
+div.groupHeader {
+	margin-left: 16px;
+	margin-top: 12px;
+	font-weight: bold;
+}
+
+div.groupText {
+	margin-left: 16px;
+	font-style: italic;
+}
+
+body {
+	background-color: white;
+	color: black;
+        margin: 0;
+}
+
+/*div.contents {
+	margin-top: 10px;
+	margin-left: 12px;
+	margin-right: 8px;
+}*/ /*removed*/
+
+td.indexkey {
+	background-color: #EBEFF6;
+	font-weight: bold;
+	border: 1px solid #C4CFE5;
+	margin: 2px 0px 2px 0;
+	padding: 2px 10px;
+        white-space: nowrap;
+        vertical-align: top;
+}
+
+td.indexvalue {
+	background-color: #EBEFF6;
+	border: 1px solid #C4CFE5;
+	padding: 2px 10px;
+	margin: 2px 0px;
+}
+
+tr.memlist {
+	background-color: #EEF1F7;
+}
+
+p.formulaDsp {
+	text-align: center;
+}
+
+img.formulaDsp {
+	
+}
+
+img.formulaInl {
+	vertical-align: middle;
+}
+
+div.center {
+	text-align: center;
+        margin-top: 0px;
+        margin-bottom: 0px;
+        padding: 0px;
+}
+
+div.center img {
+	border: 0px;
+}
+
+address.footer {
+	text-align: right;
+	padding-right: 12px;
+}
+
+img.footer {
+	border: 0px;
+	vertical-align: middle;
+}
+
+/* @group Code Colorization */
+
+span.keyword {
+	color: #008000
+}
+
+span.keywordtype {
+	color: #604020
+}
+
+span.keywordflow {
+	color: #e08000
+}
+
+span.comment {
+	color: #800000
+}
+
+span.preprocessor {
+	color: #806020
+}
+
+span.stringliteral {
+	color: #002080
+}
+
+span.charliteral {
+	color: #008080
+}
+
+span.vhdldigit { 
+	color: #ff00ff 
+}
+
+span.vhdlchar { 
+	color: #000000 
+}
+
+span.vhdlkeyword { 
+	color: #700070 
+}
+
+span.vhdllogic { 
+	color: #ff0000 
+}
+
+blockquote {
+        background-color: #F7F8FB;
+        border-left: 2px solid #9CAFD4;
+        margin: 0 24px 0 4px;
+        padding: 0 12px 0 16px;
+}
+
+/* @end */
+
+/*
+.search {
+	color: #003399;
+	font-weight: bold;
+}
+
+form.search {
+	margin-bottom: 0px;
+	margin-top: 0px;
+}
+
+input.search {
+	font-size: 75%;
+	color: #000080;
+	font-weight: normal;
+	background-color: #e8eef2;
+}
+*/
+
+td.tiny {
+	font-size: 75%;
+}
+
+.dirtab {
+	padding: 4px;
+	border-collapse: collapse;
+	border: 1px solid #A3B4D7;
+}
+
+th.dirtab {
+	background: #EBEFF6;
+	font-weight: bold;
+}
+
+hr {
+	height: 0px;
+	border: none;
+	border-top: 1px solid #4A6AAA;
+}
+
+hr.footer {
+	height: 1px;
+}
+
+/* @group Member Descriptions */
+
+table.memberdecls {
+	border-spacing: 0px;
+	padding: 0px;
+}
+
+.memberdecls td, .fieldtable tr {
+	-webkit-transition-property: background-color, box-shadow;
+	-webkit-transition-duration: 0.5s;
+	-moz-transition-property: background-color, box-shadow;
+	-moz-transition-duration: 0.5s;
+	-ms-transition-property: background-color, box-shadow;
+	-ms-transition-duration: 0.5s;
+	-o-transition-property: background-color, box-shadow;
+	-o-transition-duration: 0.5s;
+	transition-property: background-color, box-shadow;
+	transition-duration: 0.5s;
+}
+
+.memberdecls td.glow, .fieldtable tr.glow {
+	background-color: cyan;
+	box-shadow: 0 0 15px cyan;
+}
+
+.mdescLeft, .mdescRight,
+.memItemLeft, .memItemRight,
+.memTemplItemLeft, .memTemplItemRight, .memTemplParams {
+	background-color: #F9FAFC;
+	border: none;
+	margin: 4px;
+	padding: 1px 0 0 8px;
+}
+
+.mdescLeft, .mdescRight {
+	padding: 0px 8px 4px 8px;
+	color: #555;
+}
+
+.memSeparator {
+        border-bottom: 1px solid #DEE4F0;
+        line-height: 1px;
+        margin: 0px;
+        padding: 0px;
+}
+
+.memItemLeft, .memTemplItemLeft {
+        white-space: nowrap;
+}
+
+/*.memItemRight {
+	width: 100%;
+}*/
+
+.memTemplParams {
+	color: #4665A2;
+        white-space: nowrap;
+	font-size: 80%;
+}
+
+/* @end */
+
+/* @group Member Details */
+
+/* Styles for detailed member documentation */
+
+.memtemplate {
+	font-size: 80%;
+	color: #4665A2;
+	font-weight: normal;
+	margin-left: 9px;
+}
+
+.memnav {
+	background-color: #EBEFF6;
+	border: 1px solid #A3B4D7;
+	text-align: center;
+	margin: 2px;
+	margin-right: 15px;
+	padding: 2px;
+}
+
+.mempage {
+	width: 100%;
+}
+
+
+/*.memitem {*/
+/*  padding: 4px; */
+/*  padding: 0px 5px 0px 0px;*/
+/*  background-color: #eef3f5; */
+/*  background-color: #f8f0e0;
+  border-width: 1px;
+  border-style: solid;*/
+/*  border-color: #dedeee; */
+/*  border-color: #e0d0a0;
+  -moz-border-radius: 8px 8px 8px 8px;
+  margin-bottom: 20px;
+}*/
+/*.memitem {
+	padding: 0;
+	margin-bottom: 10px;
+	margin-right: 5px;
+        -webkit-transition: box-shadow 0.5s linear;
+        -moz-transition: box-shadow 0.5s linear;
+        -ms-transition: box-shadow 0.5s linear;
+        -o-transition: box-shadow 0.5s linear;
+        transition: box-shadow 0.5s linear;
+        display: table !important;
+        width: 100%;
+}*/
+
+.memitem.glow {
+         box-shadow: 0 0 15px cyan;
+}
+
+/*.memname {
+        font-weight: bold;
+        margin-left: 6px;
+}*/ /*removed*/
+
+/*.memname td {
+	vertical-align: bottom;
+}*/ /*removed*/
+
+
+/*.memproto, */ dl.reflist dt { /*removed*/
+	background-color: #e0d0a0;
+	/*width: 100%;*/
+  	border-width: 1px;
+  	border-style: solid;
+  	border-color: #c8aa54;
+
+        /*border-top: 1px solid #A8B8D9;
+        border-left: 1px solid #A8B8D9;
+        border-right: 1px solid #A8B8D9;*/
+
+        padding: 6px 0px 6px 0px;
+        color: #000000; /*#253555;*/
+        font-weight: bold;
+        text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9);
+        /*background-image:url('nav_f.png');*/
+        /*background-repeat:repeat-x;*/
+        /*background-color: #E2E8F2;*/ /*removed*/
+	/*background-color: #f8f0e0;*/ /*added*/
+        /* opera specific markup */
+        /*box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
+        border-top-right-radius: 4px;
+        border-top-left-radius: 4px;*/
+        /* firefox specific markup */
+        /*-moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px;
+        -moz-border-radius-topright: 4px;
+        -moz-border-radius-topleft: 4px;*/
+        /* webkit specific markup */
+        /*-webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
+        -webkit-border-top-right-radius: 4px;
+        -webkit-border-top-left-radius: 4px;*/
+
+}
+
+/*.memdoc, */dl.reflist dd { /*removed*/
+        /*border-bottom: 1px solid #A8B8D9;      
+        border-left: 1px solid #A8B8D9;      
+        border-right: 1px solid #A8B8D9;*/
+	border-width: 1px;
+	border-style: solid;
+	border-color: #c8aa54;
+        padding: 6px 10px 2px 10px;
+        background-color: #FBFCFD;
+        border-top-width: 0;
+        /*background-image:url('nav_g.png');*/
+        /*background-repeat:repeat-x;*/
+        background-color: #f8f0e0;/*#FFFFFF;*/
+        /* opera specific markup */
+        /*border-bottom-left-radius: 4px;
+        border-bottom-right-radius: 4px;
+        box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);*/
+        /* firefox specific markup */
+        /*-moz-border-radius-bottomleft: 4px;
+        -moz-border-radius-bottomright: 4px;
+        -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px;*/
+        /* webkit specific markup */
+        /*-webkit-border-bottom-left-radius: 4px;
+        -webkit-border-bottom-right-radius: 4px;
+        -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);*/
+}
+
+dl.reflist dt {
+        padding: 5px;
+}
+
+dl.reflist dd {
+        margin: 0px 0px 10px 0px;
+        padding: 5px;
+}
+
+.paramkey {
+	text-align: right;
+}
+
+.paramtype {
+	white-space: nowrap;
+}
+
+.paramname {
+	color: #602020;
+	white-space: nowrap;
+}
+.paramname em {
+	font-style: normal;
+}
+.paramname code {
+        line-height: 14px;
+}
+
+.params, .retval, .exception, .tparams {
+        margin-left: 0px;
+        padding-left: 0px;
+}       
+
+.params .paramname, .retval .paramname {
+        font-weight: bold;
+        vertical-align: top;
+}
+        
+.params .paramtype {
+        font-style: italic;
+        vertical-align: top;
+}       
+        
+.params .paramdir {
+        font-family: "courier new",courier,monospace;
+        vertical-align: top;
+}
+
+table.mlabels {
+	border-spacing: 0px;
+}
+
+td.mlabels-left {
+	width: 100%;
+	padding: 0px;
+}
+
+td.mlabels-right {
+	vertical-align: bottom;
+	padding: 0px;
+	white-space: nowrap;
+}
+
+span.mlabels {
+        margin-left: 8px;
+}
+
+span.mlabel {
+        background-color: #728DC1;
+        border-top:1px solid #5373B4;
+        border-left:1px solid #5373B4;
+        border-right:1px solid #C4CFE5;
+        border-bottom:1px solid #C4CFE5;
+	text-shadow: none;
+	color: white;
+	margin-right: 4px;
+	padding: 2px 3px;
+	border-radius: 3px;
+	font-size: 7pt;
+	white-space: nowrap;
+	vertical-align: middle;
+}
+
+
+
+/* @end */
+
+/* these are for tree view when not used as main index */
+
+div.directory {
+        margin: 10px 0px;
+        border-top: 1px solid #A8B8D9;
+        border-bottom: 1px solid #A8B8D9;
+        width: 100%;
+}
+
+.directory table {
+        border-collapse:collapse;
+}
+
+.directory td {
+        margin: 0px;
+        padding: 0px;
+	vertical-align: top;
+}
+
+.directory td.entry {
+        white-space: nowrap;
+        padding-right: 6px;
+}
+
+.directory td.entry a {
+        outline:none;
+}
+
+.directory td.entry a img {
+        border: none;
+}
+
+.directory td.desc {
+        width: 100%;
+        padding-left: 6px;
+	padding-right: 6px;
+	padding-top: 3px;
+	border-left: 1px solid rgba(0,0,0,0.05);
+}
+
+.directory tr.even {
+	padding-left: 6px;
+	background-color: #F7F8FB;
+}
+
+.directory img {
+	vertical-align: -30%;
+}
+
+.directory .levels {
+        white-space: nowrap;
+        width: 100%;
+        text-align: right;
+        font-size: 9pt;
+}
+
+.directory .levels span {
+        cursor: pointer;
+        padding-left: 2px;
+        padding-right: 2px;
+	color: #3D578C;
+}
+
+div.dynheader {
+        margin-top: 8px;
+	-webkit-touch-callout: none;
+	-webkit-user-select: none;
+	-khtml-user-select: none;
+	-moz-user-select: none;
+	-ms-user-select: none;
+	user-select: none;
+}
+
+address {
+	font-style: normal;
+	color: #2A3D61;
+}
+
+table.doxtable {
+	border-collapse:collapse;
+        margin-top: 4px;
+        margin-bottom: 4px;
+}
+
+table.doxtable td, table.doxtable th {
+	border: 1px solid #2D4068;
+	padding: 3px 7px 2px;
+}
+
+table.doxtable th {
+	background-color: #374F7F;
+	color: #FFFFFF;
+	font-size: 110%;
+	padding-bottom: 4px;
+	padding-top: 5px;
+}
+
+table.fieldtable {
+        width: 100%;
+        margin-bottom: 10px;
+        border: 1px solid #A8B8D9;
+        border-spacing: 0px;
+        -moz-border-radius: 4px;
+        -webkit-border-radius: 4px;
+        border-radius: 4px;
+        -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px;
+        -webkit-box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15);
+        box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15);
+}
+
+.fieldtable td, .fieldtable th {
+        padding: 3px 7px 2px;
+}
+
+.fieldtable td.fieldtype, .fieldtable td.fieldname {
+        white-space: nowrap;
+        border-right: 1px solid #A8B8D9;
+        border-bottom: 1px solid #A8B8D9;
+        vertical-align: top;
+}
+
+.fieldtable td.fielddoc {
+        border-bottom: 1px solid #A8B8D9;
+        width: 100%;
+}
+
+.fieldtable tr:last-child td {
+        border-bottom: none;
+}
+
+.fieldtable th {
+        background-image:url('nav_f.png');
+        background-repeat:repeat-x;
+        background-color: #E2E8F2;
+        font-size: 90%;
+        color: #253555;
+        padding-bottom: 4px;
+        padding-top: 5px;
+        text-align:left;
+        -moz-border-radius-topleft: 4px;
+        -moz-border-radius-topright: 4px;
+        -webkit-border-top-left-radius: 4px;
+        -webkit-border-top-right-radius: 4px;
+        border-top-left-radius: 4px;
+        border-top-right-radius: 4px;
+        border-bottom: 1px solid #A8B8D9;
+}
+
+
+.tabsearch {
+	top: 0px;
+	left: 10px;
+	height: 36px;
+	background-image: url('tab_b.png');
+	z-index: 101;
+	overflow: hidden;
+	font-size: 13px;
+}
+
+.navpath ul
+{
+	font-size: 11px;
+	background-image:url('tab_b.png');
+	background-repeat:repeat-x;
+	background-position: 0 -5px;
+	height:30px;
+	line-height:30px;
+	color:#8AA0CC;
+	border:solid 1px #C2CDE4;
+	overflow:hidden;
+	margin:0px;
+	padding:0px;
+}
+
+.navpath li
+{
+	list-style-type:none;
+	float:left;
+	padding-left:10px;
+	padding-right:15px;
+	background-image:url('bc_s.png');
+	background-repeat:no-repeat;
+	background-position:right;
+	color:#364D7C;
+}
+
+.navpath li.navelem a
+{
+	height:32px;
+	display:block;
+	text-decoration: none;
+	outline: none;
+	color: #283A5D;
+	font-family: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif;
+	text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9);
+	text-decoration: none;        
+}
+
+.navpath li.navelem a:hover
+{
+	color:#6884BD;
+}
+
+.navpath li.footer
+{
+        list-style-type:none;
+        float:right;
+        padding-left:10px;
+        padding-right:15px;
+        background-image:none;
+        background-repeat:no-repeat;
+        background-position:right;
+        color:#364D7C;
+        font-size: 8pt;
+}
+
+
+div.summary
+{
+	float: right;
+	font-size: 8pt;
+	padding-right: 5px;
+	width: 50%;
+	text-align: right;
+}       
+
+div.summary a
+{
+	white-space: nowrap;
+}
+
+/*div.ingroups
+{
+	font-size: 8pt;
+	width: 50%;
+	text-align: left;
+}*/ /*removed*/
+
+div.ingroups a
+{
+	white-space: nowrap;
+}
+
+div.header
+{
+        background-image:url('nav_h.png');
+        background-repeat:repeat-x;
+	background-color: #F9FAFC;
+	margin:  0px;
+	border-bottom: 1px solid #C4CFE5;
+}
+
+div.headertitle
+{
+	padding: 5px 5px 5px 10px;
+}
+
+dl
+{
+        padding: 0 0 0 10px;
+}
+
+/* dl.note, dl.warning, dl.attention, dl.pre, dl.post, dl.invariant, dl.deprecated, dl.todo, dl.test, dl.bug */
+dl.section
+{
+	margin-left: 0px;
+	padding-left: 0px;
+}
+
+dl.note
+{
+        margin-left:-7px;
+        padding-left: 3px;
+        border-left:4px solid;
+        border-color: #D0C000;
+}
+
+dl.warning, dl.attention
+{
+        margin-left:-7px;
+        padding-left: 3px;
+        border-left:4px solid;
+        border-color: #FF0000;
+}
+
+dl.pre, dl.post, dl.invariant
+{
+        margin-left:-7px;
+        padding-left: 3px;
+        border-left:4px solid;
+        border-color: #00D000;
+}
+
+dl.deprecated
+{
+        margin-left:-7px;
+        padding-left: 3px;
+        border-left:4px solid;
+        border-color: #505050;
+}
+
+dl.todo
+{
+        margin-left:-7px;
+        padding-left: 3px;
+        border-left:4px solid;
+        border-color: #00C0E0;
+}
+
+dl.test
+{
+        margin-left:-7px;
+        padding-left: 3px;
+        border-left:4px solid;
+        border-color: #3030E0;
+}
+
+dl.bug
+{
+        margin-left:-7px;
+        padding-left: 3px;
+        border-left:4px solid;
+        border-color: #C08050;
+}
+
+dl.section dd {
+	margin-bottom: 6px;
+}
+
+
+#projectlogo
+{
+	text-align: center;
+	vertical-align: bottom;
+	border-collapse: separate;
+}
+ 
+#projectlogo img
+{ 
+	border: 0px none;
+}
+ 
+#projectname
+{
+	font: 300% Tahoma, Arial,sans-serif;
+	margin: 0px;
+	padding: 2px 0px;
+}
+    
+#projectbrief
+{
+	font: 120% Tahoma, Arial,sans-serif;
+	margin: 0px;
+	padding: 0px;
+}
+
+#projectnumber
+{
+	font: 50% Tahoma, Arial,sans-serif;
+	margin: 0px;
+	padding: 0px;
+}
+
+#titlearea
+{
+	padding: 0px;
+	margin: 0px;
+	width: 100%;
+	border-bottom: 1px solid #5373B4;
+}
+
+.image
+{
+        text-align: center;
+}
+
+.dotgraph
+{
+        text-align: center;
+}
+
+.mscgraph
+{
+        text-align: center;
+}
+
+.caption
+{
+	font-weight: bold;
+}
+
+div.zoom
+{
+	border: 1px solid #90A5CE;
+}
+
+dl.citelist {
+        margin-bottom:50px;
+}
+
+dl.citelist dt {
+        color:#334975;
+        float:left;
+        font-weight:bold;
+        margin-right:10px;
+        padding:5px;
+}
+
+dl.citelist dd {
+        margin:2px 0;
+        padding:5px 0;
+}
+
+div.toc {
+        padding: 14px 25px;
+        background-color: #F4F6FA;
+        border: 1px solid #D8DFEE;
+        border-radius: 7px 7px 7px 7px;
+        float: right;
+        height: auto;
+        margin: 0 20px 10px 10px;
+        width: 200px;
+}
+
+div.toc li {
+        background: url("bdwn.png") no-repeat scroll 0 5px transparent;
+        font: 10px/1.2 Verdana,DejaVu Sans,Geneva,sans-serif;
+        margin-top: 5px;
+        padding-left: 10px;
+        padding-top: 2px;
+}
+
+div.toc h3 {
+        font: bold 12px/1.2 Arial,FreeSans,sans-serif;
+	color: #4665A2;
+        border-bottom: 0 none;
+        margin: 0;
+}
+
+div.toc ul {
+        list-style: none outside none;
+        border: medium none;
+        padding: 0px;
+}       
+
+div.toc li.level1 {
+        margin-left: 0px;
+}
+
+div.toc li.level2 {
+        margin-left: 15px;
+}
+
+div.toc li.level3 {
+        margin-left: 30px;
+}
+
+div.toc li.level4 {
+        margin-left: 45px;
+}
+
+.inherit_header {
+        font-weight: bold;
+        color: gray;
+        cursor: pointer;
+	-webkit-touch-callout: none;
+	-webkit-user-select: none;
+	-khtml-user-select: none;
+	-moz-user-select: none;
+	-ms-user-select: none;
+	user-select: none;
+}
+
+.inherit_header td {
+        padding: 6px 0px 2px 5px;
+}
+
+.inherit {
+        display: none;
+}
+
+tr.heading h2 {
+        margin-top: 12px;
+        margin-bottom: 4px;
+}
+
+ at media print
+{
+  #top { display: none; }
+  #side-nav { display: none; }
+  #nav-path { display: none; }
+  body { overflow:visible; }
+  h1, h2, h3, h4, h5, h6 { page-break-after: avoid; }
+  .summary { display: none; }
+  .memitem { page-break-inside: avoid; }
+  #doc-content
+  {
+    margin-left:0 !important;
+    height:auto !important;
+    width:auto !important;
+    overflow:inherit;
+    display:inline;
+  }
+}
+
+
+
+/* Customized css version 1.5.6 */
+
+BODY,H1,H2,H3,H4,H5,H6,P,CENTER,TD,TH,UL,DL,DIV {
+    font-family: Geneva, Arial, Helvetica, sans-serif;
+}
+BODY,TD {
+       font-size: 90%;
+}
+H1 {
+    background-color: #e0d0a0;
+    padding: 0.5em;
+    text-align: center;
+    font-size: 160%;
+}
+H2 {
+       font-size: 120%;
+}
+H2.details_section {
+    background-color: #e0d0a0;
+    padding: 0.5em;
+    font-size: 140%;
+    text-align: center;
+}
+H3.details_section {
+    background-color: #e0d0a0;
+    padding: 0.5em;
+    border-width: 1px;
+    border-style: solid;
+    border-color: #c8aa54;
+    -moz-border-radius: 8px 8px 8px 8px;
+}
+.main_heading {
+    background-color: #e0d0a0;
+    padding: 1em;
+    text-align: center;
+    font-size: 200%;
+    border: 0px;
+    padding: 5px;
+    font-weight: bold;
+}
+.ingroups {
+    font-size: 60%;
+}
+H3 {
+       font-size: 100%;
+}
+table.function_index {
+    background-color: #e0d0a0;
+    padding: 0.3em;
+    font-size: 120%;
+    width: 100%;
+}
+CAPTION { font-weight: bold }
+DIV.qindex {
+    width: 100%;
+    background-color: #e0d0a0;
+    border: 1px solid #c8aa54;
+    text-align: center;
+    margin: 2px;
+    padding: 2px;
+    line-height: 140%;
+}
+DIV.nav {
+    width: 100%;
+    background-color: #e8eef2;
+    border: 1px solid #c8aa54;
+    text-align: center;
+    margin: 2px;
+    padding: 2px;
+    line-height: 140%;
+}
+DIV.navtab {
+       background-color: #e8eef2;
+       border: 1px solid #c8aa54;
+       text-align: center;
+       margin: 2px;
+       margin-right: 15px;
+       padding: 2px;
+}
+TD.navtab {
+       font-size: 70%;
+}
+A.qindex {
+       text-decoration: none;
+       font-weight: bold;
+       color: #1A419D;
+}
+A.qindex:visited {
+       text-decoration: none;
+       font-weight: bold;
+       color: #1A419D
+}
+A.qindex:hover {
+    text-decoration: none;
+    background-color: #ddddff;
+}
+A.qindexHL {
+    text-decoration: none;
+    font-weight: bold;
+    background-color: #6666cc;
+    color: #ffffff;
+    border: 1px double #9295C2;
+}
+A.qindexHL:hover {
+    text-decoration: none;
+    background-color: #6666cc;
+    color: #ffffff;
+}
+A.qindexHL:visited { text-decoration: none; background-color: #6666cc; color: #ffffff }
+A.el { text-decoration: none; font-weight: bold }
+A:link { color: #0040b0; }
+A:visited { color: #a00040; }
+A:hover { text-decoration: none; background-color: #f2f2ff }
+A.anchor { color: #000000;   text-decoration: none; background-color: none; }
+A.elRef { font-weight: bold }
+A.code:link { text-decoration: none; font-weight: normal; color: #0000FF}
+A.code:visited { text-decoration: none; font-weight: normal; color: #0000FF}
+A.codeRef:link { font-weight: normal; color: #0000FF}
+A.codeRef:visited { font-weight: normal; color: #0000FF}
+code  { 
+/*    font-family: Lucida Console, monospace, fixed; */
+    font-family: monospace, fixed;
+    color: #303030; 
+    font-weight: bold;
+} 
+DL.el { margin-left: -1cm }
+.fragment {
+/*    font-family: Lucida Console, monospace, fixed; */
+    font-family: monospace, fixed;
+       font-size: 95%;
+}
+PRE.fragment {
+/*  border: 1px solid #c8aa54; */
+    border: 1px solid #dad0aa;
+    background-color: #fcfaf8;
+    margin-top: 4px;
+    margin-bottom: 4px;
+    margin-left: 2px;
+    margin-right: 8px;
+    padding-left: 6px;
+    padding-right: 6px;
+    padding-top: 4px;
+    padding-bottom: 4px;
+}
+DIV.ah { background-color: black; font-weight: bold; color: #ffffff; margin-bottom: 3px; margin-top: 3px }
+
+DIV.groupHeader {
+       margin-left: 16px;
+       margin-top: 12px;
+       margin-bottom: 6px;
+       font-weight: bold;
+}
+DIV.groupText { margin-left: 16px; font-style: italic; font-size: 90% }
+BODY {
+    background: #f8f0e0;
+    color: black;
+    margin-right: 20px;
+    margin-left: 20px;
+}
+TD.indexkey {
+/*  background-color: #e8eef2; */
+    background-color: #f8f0e0;
+    font-weight: bold;
+    padding-right  : 10px;
+    padding-top    : 2px;
+    padding-left   : 10px;
+    padding-bottom : 2px;
+    margin-left    : 0px;
+    margin-right   : 0px;
+    margin-top     : 2px;
+    margin-bottom  : 2px;
+/*  border: 1px solid #CCCCCC; */
+    border: 1px solid #e0d0a0;
+}
+TD.indexvalue {
+/*  background-color: #e8eef2; */
+    background-color: #f8f0e0;
+    font-style: italic;
+    padding-right  : 10px;
+    padding-top    : 2px;
+    padding-left   : 10px;
+    padding-bottom : 2px;
+    margin-left    : 0px;
+    margin-right   : 0px;
+    margin-top     : 2px;
+    margin-bottom  : 2px;
+/*  border: 1px solid #CCCCCC; */
+    border: 1px solid #e0d0a0;
+}
+TR.memlist {
+   background-color: #f0f0f0;
+}
+P.formulaDsp { text-align: center; }
+IMG.formulaDsp { }
+IMG.formulaInl { vertical-align: middle; }
+SPAN.keyword       { color: #008000 }
+SPAN.keywordtype   { color: #604020 }
+SPAN.keywordflow   { color: #e08000 }
+SPAN.comment       { color: #800000 }
+SPAN.preprocessor  { color: #806020 }
+SPAN.stringliteral { color: #002080 }
+SPAN.charliteral   { color: #008080 }
+.mdescLeft {
+    padding: 0px 8px 4px 8px;
+    font-size: 80%;
+    font-style: italic;
+    background-color: #fcfaf8;
+    border-top: 1px none #dad0a8;
+    border-right: 1px none #dad0a8;
+    border-bottom: 1px none #dad0a8;
+    border-left: 1px none #dad0a8;
+    margin: 0px;
+}
+.mdescRight {
+    padding: 0px 8px 4px 8px; 
+    font-size: 80%;
+    font-style: italic;
+    background-color: #fcfaf8;
+    border-top: 1px none #dad0a8;
+    border-right: 1px none #dad0a8;
+    border-bottom: 1px none #dad0a8;
+    border-left: 1px none #dad0a8;
+    margin: 0px;
+}
+.memItemLeft {
+    padding: 1px 0px 0px 8px;
+    margin: 4px;
+    border-top-width: 1px;
+    border-right-width: 1px;
+    border-bottom-width: 1px;
+    border-left-width: 1px;
+    border-top-color: #dad0a8;
+    border-right-color: #dad0a8;
+    border-bottom-color: #dad0a8;
+    border-left-color: #dad0a8;
+    border-top-style: solid;
+    border-right-style: none;
+    border-bottom-style: none;
+    border-left-style: none;
+    background-color: #fcfaf8;
+    font-size: 80%;
+}
+.memItemRight {
+    padding: 1px 8px 0px 8px; 
+    margin: 4px;
+    border-top-width: 1px;
+    border-right-width: 1px;
+    border-bottom-width: 1px;
+    border-left-width: 1px;
+    border-top-color: #dad0a8;
+    border-right-color: #dad0a8;
+    border-bottom-color: #dad0a8;
+    border-left-color: #dad0a8;
+    border-top-style: solid;
+    border-right-style: none;
+    border-bottom-style: none;
+    border-left-style: none;
+    background-color: #fcfaf8;
+    font-size: 80%;
+}
+.memTemplItemLeft {
+    padding: 1px 0px 0px 8px; 
+    margin: 4px;
+    border-top-width: 1px;
+    border-right-width: 1px;
+    border-bottom-width: 1px;
+    border-left-width: 1px;
+    border-top-color: #dad0a8;
+    border-right-color: #dad0a8;
+    border-bottom-color: #dad0a8;
+    border-left-color: #dad0a8;
+    border-top-style: none;
+    border-right-style: none;
+    border-bottom-style: none;
+    border-left-style: none;
+    background-color: #fcfaf8;
+    font-size: 80%;
+}
+.memTemplItemRight {
+    padding: 1px 8px 0px 8px; 
+    margin: 4px;
+    border-top-width: 1px;
+    border-right-width: 1px;
+    border-bottom-width: 1px;
+    border-left-width: 1px;
+    border-top-color: #dad0a8;
+    border-right-color: #dad0a8;
+    border-bottom-color: #dad0a8;
+    border-left-color: #dad0a8;
+    border-top-style: none;
+    border-right-style: none;
+    border-bottom-style: none;
+    border-left-style: none;
+    background-color: #fcfaf8;
+    font-size: 80%;
+}
+.memTemplParams {
+    padding: 1px 0px 0px 8px; 
+    margin: 4px;
+    border-top-width: 1px;
+    border-right-width: 1px;
+    border-bottom-width: 1px;
+    border-left-width: 1px;
+    border-top-color: #dad0a8;
+    border-right-color: #dad0a8;
+    border-bottom-color: #dad0a8;
+    border-left-color: #dad0a8;
+    border-top-style: solid;
+    border-right-style: none;
+    border-bottom-style: none;
+    border-left-style: none;
+/*       color: #606060; */
+    background-color: #fcfaf8;
+    font-size: 80%;
+}
+.search     { color: #003399;
+              font-weight: bold;
+}
+FORM.search {
+              margin-bottom: 0px;
+              margin-top: 0px;
+}
+INPUT.search { font-size: 75%;
+               color: #000080;
+               font-weight: normal;
+               background-color: #e8eef2;
+}
+TD.tiny      { font-size: 75%;
+}
+a {
+    color: #1A41A8;
+}
+a:visited {
+    color: #2A3798;
+}
+.dirtab { padding: 4px;
+          border-collapse: collapse;
+          border: 1px solid #c8aa54;
+}
+TH.dirtab { background: #e8eef2;
+            font-weight: bold;
+}
+HR { height: 1px;
+     border: none;
+     border-top: 1px solid black;
+}
+
+/* Style for detailed member documentation */
+/*
+.memtemplate {
+  font-size: 80%;
+  color: #606060;
+  font-weight: normal;
+  margin-left: 3px;
+}
+*/
+.memtemplate {
+  white-space: nowrap;
+  font-weight: bold;
+}
+.memnav {
+  background-color: #e8eef2;
+  border: 1px solid #c8aa54;
+  text-align: center;
+  margin: 2px;
+  margin-right: 15px;
+  padding: 2px;
+}
+.memitem {
+/*  padding: 4px; */
+  padding: 0px 5px 0px 0px;
+/*  background-color: #eef3f5; */
+  background-color: #f8f0e0;
+  border-width: 1px;
+  border-style: solid;
+/*  border-color: #dedeee; */
+  border-color: #e0d0a0;
+  -moz-border-radius: 8px 8px 8px 8px;
+  margin-bottom: 20px;
+}
+.memname {
+  white-space: nowrap;
+  font-weight: bold;
+}
+.memdoc{
+  padding-left: 10px;
+}
+.memproto {
+  background-color: #e0d0a0;
+  width: 100%;
+  border-width: 1px;
+  border-style: solid;
+  border-color: #c8aa54;
+  font-weight: bold;
+  padding: 5px 0px 5px 5px; 
+  -moz-border-radius: 8px 8px 8px 8px;
+}
+.paramkey {
+  text-align: right;
+}
+.paramtype {
+  white-space: nowrap;
+}
+.paramname {
+  color: #602020;
+  font-style: italic;
+  white-space: nowrap;
+}
+/* End Styling for detailed member documentation */
+
+/* for the tree view */
+.ftvtree {
+    font-family: sans-serif;
+    margin:0.5em;
+}
+.directory { font-size: 9pt; font-weight: bold; }
+.directory h3 { margin: 0px; margin-top: 1em; font-size: 11pt; }
+.directory > h3 { margin-top: 0; }
+.directory p { margin: 0px; white-space: nowrap; }
+.directory div { display: none; margin: 0px; }
+.directory img { vertical-align: -30%; }
diff --git a/docsrc/documents/bullet.gif b/docsrc/documents/bullet.gif
new file mode 100644
index 0000000..ef2fab5
Binary files /dev/null and b/docsrc/documents/bullet.gif differ
diff --git a/docsrc/documents/pfeil.gif b/docsrc/documents/pfeil.gif
new file mode 100644
index 0000000..f2e3922
Binary files /dev/null and b/docsrc/documents/pfeil.gif differ
diff --git a/docsrc/documents/pfeilGross.gif b/docsrc/documents/pfeilGross.gif
new file mode 100644
index 0000000..6ad034d
Binary files /dev/null and b/docsrc/documents/pfeilGross.gif differ
diff --git a/docsrc/documents/vigra.gif b/docsrc/documents/vigra.gif
new file mode 100644
index 0000000..f8b2fbe
Binary files /dev/null and b/docsrc/documents/vigra.gif differ
diff --git a/vigranumpy/docsrc/_static/basic.css b/vigranumpy/docsrc/_static/basic.css
deleted file mode 100644
index c726798..0000000
--- a/vigranumpy/docsrc/_static/basic.css
+++ /dev/null
@@ -1,413 +0,0 @@
-/**
- * Sphinx stylesheet -- basic theme
- * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- */
-
-/* -- main layout ----------------------------------------------------------- */
-
-div.clearer {
-    clear: both;
-}
-
-/* -- relbar ---------------------------------------------------------------- */
-
-div.related {
-    width: 100%;
-    font-size: 90%;
-}
-
-div.related h3 {
-    display: none;
-}
-
-div.related ul {
-    margin: 0;
-    padding: 0 0 0 10px;
-    list-style: none;
-}
-
-div.related li {
-    display: inline;
-}
-
-div.related li.right {
-    float: right;
-    margin-right: 5px;
-}
-
-/* -- sidebar --------------------------------------------------------------- */
-
-div.sphinxsidebarwrapper {
-    padding: 10px 5px 0 10px;
-}
-
-div.sphinxsidebar {
-    float: left;
-    width: 230px;
-    margin-left: -100%;
-    font-size: 90%;
-}
-
-div.sphinxsidebar ul {
-    list-style: none;
-}
-
-div.sphinxsidebar ul ul,
-div.sphinxsidebar ul.want-points {
-    margin-left: 20px;
-    list-style: square;
-}
-
-div.sphinxsidebar ul ul {
-    margin-top: 0;
-    margin-bottom: 0;
-}
-
-div.sphinxsidebar form {
-    margin-top: 10px;
-}
-
-div.sphinxsidebar input {
-    border: 1px solid #98dbcc;
-    font-family: sans-serif;
-    font-size: 1em;
-}
-
-img {
-    border: 0;
-}
-
-/* -- search page ----------------------------------------------------------- */
-
-ul.search {
-    margin: 10px 0 0 20px;
-    padding: 0;
-}
-
-ul.search li {
-    padding: 5px 0 5px 20px;
-    background-image: url(file.png);
-    background-repeat: no-repeat;
-    background-position: 0 7px;
-}
-
-ul.search li a {
-    font-weight: bold;
-}
-
-ul.search li div.context {
-    color: #888;
-    margin: 2px 0 0 30px;
-    text-align: left;
-}
-
-ul.keywordmatches li.goodmatch a {
-    font-weight: bold;
-}
-
-/* -- index page ------------------------------------------------------------ */
-
-table.contentstable {
-    width: 90%;
-}
-
-table.contentstable p.biglink {
-    line-height: 150%;
-}
-
-a.biglink {
-    font-size: 1.3em;
-}
-
-span.linkdescr {
-    font-style: italic;
-    padding-top: 5px;
-    font-size: 90%;
-}
-
-/* -- general index --------------------------------------------------------- */
-
-table.indextable td {
-    text-align: left;
-    vertical-align: top;
-}
-
-table.indextable dl, table.indextable dd {
-    margin-top: 0;
-    margin-bottom: 0;
-}
-
-table.indextable tr.pcap {
-    height: 10px;
-}
-
-table.indextable tr.cap {
-    margin-top: 10px;
-    background-color: #f2f2f2;
-}
-
-img.toggler {
-    margin-right: 3px;
-    margin-top: 3px;
-    cursor: pointer;
-}
-
-/* -- general body styles --------------------------------------------------- */
-
-a.headerlink {
-    visibility: hidden;
-}
-
-h1:hover > a.headerlink,
-h2:hover > a.headerlink,
-h3:hover > a.headerlink,
-h4:hover > a.headerlink,
-h5:hover > a.headerlink,
-h6:hover > a.headerlink,
-dt:hover > a.headerlink {
-    visibility: visible;
-}
-
-div.body p.caption {
-    text-align: inherit;
-}
-
-div.body td {
-    text-align: left;
-}
-
-.field-list ul {
-    padding-left: 1em;
-}
-
-.first {
-    margin-top: 0 !important;
-}
-
-p.rubric {
-    margin-top: 30px;
-    font-weight: bold;
-}
-
-/* -- sidebars -------------------------------------------------------------- */
-
-div.sidebar {
-    margin: 0 0 0.5em 1em;
-    border: 1px solid #ddb;
-    padding: 7px 7px 0 7px;
-    background-color: #ffe;
-    width: 40%;
-    float: right;
-}
-
-p.sidebar-title {
-    font-weight: bold;
-}
-
-/* -- topics ---------------------------------------------------------------- */
-
-div.topic {
-    border: 1px solid #ccc;
-    padding: 7px 7px 0 7px;
-    margin: 10px 0 10px 0;
-}
-
-p.topic-title {
-    font-size: 1.1em;
-    font-weight: bold;
-    margin-top: 10px;
-}
-
-/* -- admonitions ----------------------------------------------------------- */
-
-div.admonition {
-    margin-top: 10px;
-    margin-bottom: 10px;
-    padding: 7px;
-}
-
-div.admonition dt {
-    font-weight: bold;
-}
-
-div.admonition dl {
-    margin-bottom: 0;
-}
-
-p.admonition-title {
-    margin: 0px 10px 5px 0px;
-    font-weight: bold;
-}
-
-div.body p.centered {
-    text-align: center;
-    margin-top: 25px;
-}
-
-/* -- tables ---------------------------------------------------------------- */
-
-table.docutils {
-    border: 0;
-    border-collapse: collapse;
-}
-
-table.docutils td, table.docutils th {
-    padding: 1px 8px 1px 0;
-    border-top: 0;
-    border-left: 0;
-    border-right: 0;
-    border-bottom: 1px solid #aaa;
-}
-
-table.field-list td, table.field-list th {
-    border: 0 !important;
-}
-
-table.footnote td, table.footnote th {
-    border: 0 !important;
-}
-
-th {
-    text-align: left;
-    padding-right: 5px;
-}
-
-/* -- other body styles ----------------------------------------------------- */
-
-dl {
-    margin-bottom: 15px;
-}
-
-dd p {
-    margin-top: 0px;
-}
-
-dd ul, dd table {
-    margin-bottom: 10px;
-}
-
-dd {
-    margin-top: 3px;
-    margin-bottom: 10px;
-    margin-left: 30px;
-}
-
-dt:target, .highlight {
-    background-color: #fbe54e;
-}
-
-dl.glossary dt {
-    font-weight: bold;
-    font-size: 1.1em;
-}
-
-.field-list ul {
-    margin: 0;
-    padding-left: 1em;
-}
-
-.field-list p {
-    margin: 0;
-}
-
-.refcount {
-    color: #060;
-}
-
-.optional {
-    font-size: 1.3em;
-}
-
-.versionmodified {
-    font-style: italic;
-}
-
-.system-message {
-    background-color: #fda;
-    padding: 5px;
-    border: 3px solid red;
-}
-
-.footnote:target  {
-    background-color: #ffa
-}
-
-/* -- code displays --------------------------------------------------------- */
-
-pre {
-    overflow: auto;
-}
-
-td.linenos pre {
-    padding: 5px 0px;
-    border: 0;
-    background-color: transparent;
-    color: #aaa;
-}
-
-table.highlighttable {
-    margin-left: 0.5em;
-}
-
-table.highlighttable td {
-    padding: 0 0.5em 0 0.5em;
-}
-
-em.property {
-    background-color: transparent;
-    font-weight: bold;
-    font-size: 1.2em;
-}
-
-tt.descname {
-    background-color: transparent;
-    font-weight: bold;
-    font-size: 1.7em;
-}
-
-tt.descclassname {
-    background-color: transparent;
-    font-weight: bold;
-    font-size: 1.7em;
-}
-
-tt.xref, a tt {
-    background-color: transparent;
-    font-weight: bold;
-}
-
-h1 tt, h2 tt, h3 tt, h4 tt, h5 tt, h6 tt {
-    background-color: transparent;
-}
-
-/* -- math display ---------------------------------------------------------- */
-
-img.math {
-    vertical-align: middle;
-}
-
-div.body div.math p {
-    text-align: center;
-}
-
-span.eqno {
-    float: right;
-}
-
-/* -- printout stylesheet --------------------------------------------------- */
-
- at media print {
-    div.document,
-    div.documentwrapper,
-    div.bodywrapper {
-        margin: 0;
-        width: 100%;
-    }
-
-    div.sphinxsidebar,
-    div.related,
-    div.footer,
-    #top-link {
-        display: none;
-    }
-}
diff --git a/vigranumpy/docsrc/_static/default.css b/vigranumpy/docsrc/_static/default.css
deleted file mode 100644
index c999f67..0000000
--- a/vigranumpy/docsrc/_static/default.css
+++ /dev/null
@@ -1,210 +0,0 @@
-/**
- * Sphinx stylesheet -- default theme
- * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- */
-
- at import url("basic.css");
-
-/* -- page layout ----------------------------------------------------------- */
-
-body {
-    font-family: sans-serif;
-    font-size: 100%;
-    background-color: #11303d;
-    color: #000;
-    margin: 0;
-    padding: 0;
-}
-
-div.document {
-    background-color: #1c4e63;
-}
-
-div.documentwrapper {
-    float: left;
-    width: 100%;
-}
-
-div.bodywrapper {
-    margin: 0 0 0 230px;
-}
-
-div.body {
-    background-color: #ffffff;
-    color: #000000;
-    padding: 0 20px 30px 20px;
-}
-
-div.footer {
-    color: #ffffff;
-    width: 100%;
-    padding: 9px 0 9px 0;
-    text-align: center;
-    font-size: 75%;
-}
-
-div.footer a {
-    color: #ffffff;
-    text-decoration: underline;
-}
-
-div.related {
-    background-color: #133f52;
-    line-height: 30px;
-    color: #ffffff;
-}
-
-div.related a {
-    color: #ffffff;
-}
-
-div.sphinxsidebar {
-}
-
-div.sphinxsidebar h3 {
-    font-family: 'Trebuchet MS', sans-serif;
-    color: #ffffff;
-    font-size: 1.4em;
-    font-weight: normal;
-    margin: 0;
-    padding: 0;
-}
-
-div.sphinxsidebar h3 a {
-    color: #ffffff;
-}
-
-div.sphinxsidebar h4 {
-    font-family: 'Trebuchet MS', sans-serif;
-    color: #ffffff;
-    font-size: 1.3em;
-    font-weight: normal;
-    margin: 5px 0 0 0;
-    padding: 0;
-}
-
-div.sphinxsidebar p {
-    color: #ffffff;
-}
-
-div.sphinxsidebar p.topless {
-    margin: 5px 10px 10px 10px;
-}
-
-div.sphinxsidebar ul {
-    margin: 10px;
-    padding: 0;
-    color: #ffffff;
-}
-
-div.sphinxsidebar a {
-    color: #98dbcc;
-}
-
-div.sphinxsidebar input {
-    border: 1px solid #98dbcc;
-    font-family: sans-serif;
-    font-size: 1em;
-}
-
-/* -- body styles ----------------------------------------------------------- */
-
-a {
-    color: #355f7c;
-    text-decoration: none;
-}
-
-a:hover {
-    text-decoration: underline;
-}
-
-div.body p, div.body dd, div.body li {
-    text-align: justify;
-    line-height: 130%;
-}
-
-div.body h1,
-div.body h2,
-div.body h3,
-div.body h4,
-div.body h5,
-div.body h6 {
-    font-family: 'Trebuchet MS', sans-serif;
-    background-color: #f2f2f2;
-    font-weight: normal;
-    color: #20435c;
-    border-bottom: 1px solid #ccc;
-    margin: 20px -20px 10px -20px;
-    padding: 3px 0 3px 10px;
-}
-
-div.body h1 { margin-top: 0; font-size: 200%; }
-div.body h2 { font-size: 160%; }
-div.body h3 { font-size: 140%; }
-div.body h4 { font-size: 120%; }
-div.body h5 { font-size: 110%; }
-div.body h6 { font-size: 100%; }
-
-a.headerlink {
-    color: #c60f0f;
-    font-size: 0.8em;
-    padding: 0 4px 0 4px;
-    text-decoration: none;
-}
-
-a.headerlink:hover {
-    background-color: #c60f0f;
-    color: white;
-}
-
-div.body p, div.body dd, div.body li {
-    text-align: justify;
-    line-height: 130%;
-}
-
-div.admonition p.admonition-title + p {
-    display: inline;
-}
-
-div.note {
-    background-color: #eee;
-    border: 1px solid #ccc;
-}
-
-div.seealso {
-    background-color: #ffc;
-    border: 1px solid #ff6;
-}
-
-div.topic {
-    background-color: #eee;
-}
-
-div.warning {
-    background-color: #ffe4e4;
-    border: 1px solid #f66;
-}
-
-p.admonition-title {
-    display: inline;
-}
-
-p.admonition-title:after {
-    content: ":";
-}
-
-pre {
-    padding: 5px;
-    background-color: #eeffcc;
-    color: #333333;
-    line-height: 120%;
-    border: 1px solid #ac9;
-    border-left: none;
-    border-right: none;
-}
-
-tt {
-    background-color: #ecf0f3;
-    padding: 0 1px 0 1px;
-    font-size: 0.95em;
-}
\ No newline at end of file
diff --git a/vigranumpy/docsrc/_static/doctools.js b/vigranumpy/docsrc/_static/doctools.js
deleted file mode 100644
index 9447678..0000000
--- a/vigranumpy/docsrc/_static/doctools.js
+++ /dev/null
@@ -1,232 +0,0 @@
-/// XXX: make it cross browser
-
-/**
- * make the code below compatible with browsers without
- * an installed firebug like debugger
- */
-if (!window.console || !console.firebug) {
-  var names = ["log", "debug", "info", "warn", "error", "assert", "dir", "dirxml",
-      "group", "groupEnd", "time", "timeEnd", "count", "trace", "profile", "profileEnd"];
-  window.console = {};
-  for (var i = 0; i < names.length; ++i)
-    window.console[names[i]] = function() {}
-}
-
-/**
- * small helper function to urldecode strings
- */
-jQuery.urldecode = function(x) {
-  return decodeURIComponent(x).replace(/\+/g, ' ');
-}
-
-/**
- * small helper function to urlencode strings
- */
-jQuery.urlencode = encodeURIComponent;
-
-/**
- * This function returns the parsed url parameters of the
- * current request. Multiple values per key are supported,
- * it will always return arrays of strings for the value parts.
- */
-jQuery.getQueryParameters = function(s) {
-  if (typeof s == 'undefined')
-    s = document.location.search;
-  var parts = s.substr(s.indexOf('?') + 1).split('&');
-  var result = {};
-  for (var i = 0; i < parts.length; i++) {
-    var tmp = parts[i].split('=', 2);
-    var key = jQuery.urldecode(tmp[0]);
-    var value = jQuery.urldecode(tmp[1]);
-    if (key in result)
-      result[key].push(value);
-    else
-      result[key] = [value];
-  }
-  return result;
-}
-
-/**
- * small function to check if an array contains
- * a given item.
- */
-jQuery.contains = function(arr, item) {
-  for (var i = 0; i < arr.length; i++) {
-    if (arr[i] == item)
-      return true;
-  }
-  return false;
-}
-
-/**
- * highlight a given string on a jquery object by wrapping it in
- * span elements with the given class name.
- */
-jQuery.fn.highlightText = function(text, className) {
-  function highlight(node) {
-    if (node.nodeType == 3) {
-      var val = node.nodeValue;
-      var pos = val.toLowerCase().indexOf(text);
-      if (pos >= 0 && !jQuery.className.has(node.parentNode, className)) {
-        var span = document.createElement("span");
-        span.className = className;
-        span.appendChild(document.createTextNode(val.substr(pos, text.length)));
-        node.parentNode.insertBefore(span, node.parentNode.insertBefore(
-          document.createTextNode(val.substr(pos + text.length)),
-          node.nextSibling));
-        node.nodeValue = val.substr(0, pos);
-      }
-    }
-    else if (!jQuery(node).is("button, select, textarea")) {
-      jQuery.each(node.childNodes, function() {
-        highlight(this)
-      });
-    }
-  }
-  return this.each(function() {
-    highlight(this);
-  });
-}
-
-/**
- * Small JavaScript module for the documentation.
- */
-var Documentation = {
-
-  init : function() {
-    this.fixFirefoxAnchorBug();
-    this.highlightSearchWords();
-    this.initModIndex();
-  },
-
-  /**
-   * i18n support
-   */
-  TRANSLATIONS : {},
-  PLURAL_EXPR : function(n) { return n == 1 ? 0 : 1; },
-  LOCALE : 'unknown',
-
-  // gettext and ngettext don't access this so that the functions
-  // can savely bound to a different name (_ = Documentation.gettext)
-  gettext : function(string) {
-    var translated = Documentation.TRANSLATIONS[string];
-    if (typeof translated == 'undefined')
-      return string;
-    return (typeof translated == 'string') ? translated : translated[0];
-  },
-
-  ngettext : function(singular, plural, n) {
-    var translated = Documentation.TRANSLATIONS[singular];
-    if (typeof translated == 'undefined')
-      return (n == 1) ? singular : plural;
-    return translated[Documentation.PLURALEXPR(n)];
-  },
-
-  addTranslations : function(catalog) {
-    for (var key in catalog.messages)
-      this.TRANSLATIONS[key] = catalog.messages[key];
-    this.PLURAL_EXPR = new Function('n', 'return +(' + catalog.plural_expr + ')');
-    this.LOCALE = catalog.locale;
-  },
-
-  /**
-   * add context elements like header anchor links
-   */
-  addContextElements : function() {
-    $('div[id] > :header:first').each(function() {
-      $('<a class="headerlink">\u00B6</a>').
-      attr('href', '#' + this.id).
-      attr('title', _('Permalink to this headline')).
-      appendTo(this);
-    });
-    $('dt[id]').each(function() {
-      $('<a class="headerlink">\u00B6</a>').
-      attr('href', '#' + this.id).
-      attr('title', _('Permalink to this definition')).
-      appendTo(this);
-    });
-  },
-
-  /**
-   * workaround a firefox stupidity
-   */
-  fixFirefoxAnchorBug : function() {
-    if (document.location.hash && $.browser.mozilla)
-      window.setTimeout(function() {
-        document.location.href += '';
-      }, 10);
-  },
-
-  /**
-   * highlight the search words provided in the url in the text
-   */
-  highlightSearchWords : function() {
-    var params = $.getQueryParameters();
-    var terms = (params.highlight) ? params.highlight[0].split(/\s+/) : [];
-    if (terms.length) {
-      var body = $('div.body');
-      window.setTimeout(function() {
-        $.each(terms, function() {
-          body.highlightText(this.toLowerCase(), 'highlight');
-        });
-      }, 10);
-      $('<li class="highlight-link"><a href="javascript:Documentation.' +
-        'hideSearchWords()">' + _('Hide Search Matches') + '</a></li>')
-          .appendTo($('.sidebar .this-page-menu'));
-    }
-  },
-
-  /**
-   * init the modindex toggle buttons
-   */
-  initModIndex : function() {
-    var togglers = $('img.toggler').click(function() {
-      var src = $(this).attr('src');
-      var idnum = $(this).attr('id').substr(7);
-      console.log($('tr.cg-' + idnum).toggle());
-      if (src.substr(-9) == 'minus.png')
-        $(this).attr('src', src.substr(0, src.length-9) + 'plus.png');
-      else
-        $(this).attr('src', src.substr(0, src.length-8) + 'minus.png');
-    }).css('display', '');
-    if (DOCUMENTATION_OPTIONS.COLLAPSE_MODINDEX) {
-        togglers.click();
-    }
-  },
-
-  /**
-   * helper function to hide the search marks again
-   */
-  hideSearchWords : function() {
-    $('.sidebar .this-page-menu li.highlight-link').fadeOut(300);
-    $('span.highlight').removeClass('highlight');
-  },
-
-  /**
-   * make the url absolute
-   */
-  makeURL : function(relativeURL) {
-    return DOCUMENTATION_OPTIONS.URL_ROOT + '/' + relativeURL;
-  },
-
-  /**
-   * get the current relative url
-   */
-  getCurrentURL : function() {
-    var path = document.location.pathname;
-    var parts = path.split(/\//);
-    $.each(DOCUMENTATION_OPTIONS.URL_ROOT.split(/\//), function() {
-      if (this == '..')
-        parts.pop();
-    });
-    var url = parts.join('/');
-    return path.substring(url.lastIndexOf('/') + 1, path.length - 1);
-  }
-};
-
-// quick alias for translations
-_ = Documentation.gettext;
-
-$(document).ready(function() {
-  Documentation.init();
-});
diff --git a/vigranumpy/docsrc/_static/file.png b/vigranumpy/docsrc/_static/file.png
deleted file mode 100644
index d18082e..0000000
Binary files a/vigranumpy/docsrc/_static/file.png and /dev/null differ
diff --git a/vigranumpy/docsrc/_static/jquery.js b/vigranumpy/docsrc/_static/jquery.js
deleted file mode 100644
index 82b98e1..0000000
--- a/vigranumpy/docsrc/_static/jquery.js
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * jQuery 1.2.6 - New Wave Javascript
- *
- * Copyright (c) 2008 John Resig (jquery.com)
- * Dual licensed under the MIT (MIT-LICENSE.txt)
- * and GPL (GPL-LICENSE.txt) licenses.
- *
- * $Date: 2008-05-24 14:22:17 -0400 (Sat, 24 May 2008) $
- * $Rev: 5685 $
- */
-(function(){var _jQuery=window.jQuery,_$=window.$;var jQuery=window.jQuery=window.$=function(selector,context){return new jQuery.fn.init(selector,context);};var quickExpr=/^[^<]*(<(.|\s)+>)[^>]*$|^#(\w+)$/,isSimple=/^.[^:#\[\.]*$/,undefined;jQuery.fn=jQuery.prototype={init:function(selector,context){selector=selector||document;if(selector.nodeType){this[0]=selector;this.length=1;return this;}if(typeof selector=="string"){var match=quickExpr.exec(selector);if(match&&(match[1]||!context)){ [...]
-return jQuery(context).find(selector);}else if(jQuery.isFunction(selector))return jQuery(document)[jQuery.fn.ready?"ready":"load"](selector);return this.setArray(jQuery.makeArray(selector));},jquery:"1.2.6",size:function(){return this.length;},length:0,get:function(num){return num==undefined?jQuery.makeArray(this):this[num];},pushStack:function(elems){var ret=jQuery(elems);ret.prevObject=this;return ret;},setArray:function(elems){this.length=0;Array.prototype.push.apply(this,elems);retur [...]
-return this.cloneNode(true);});var clone=ret.find("*").andSelf().each(function(){if(this[expando]!=undefined)this[expando]=null;});if(events===true)this.find("*").andSelf().each(function(i){if(this.nodeType==3)return;var events=jQuery.data(this,"events");for(var type in events)for(var handler in events[type])jQuery.event.add(clone[i],type,events[type][handler],events[type][handler].data);});return ret;},filter:function(selector){return this.pushStack(jQuery.isFunction(selector)&&jQuery.g [...]
-selector=jQuery.multiFilter(selector,this);var isArrayLike=selector.length&&selector[selector.length-1]!==undefined&&!selector.nodeType;return this.filter(function(){return isArrayLike?jQuery.inArray(this,selector)<0:this!=selector;});},add:function(selector){return this.pushStack(jQuery.unique(jQuery.merge(this.get(),typeof selector=='string'?jQuery(selector):jQuery.makeArray(selector))));},is:function(selector){return!!selector&&jQuery.multiFilter(selector,this).length>0;},hasClass:fun [...]
-return(this[0].value||"").replace(/\r/g,"");}return undefined;}if(value.constructor==Number)value+='';return this.each(function(){if(this.nodeType!=1)return;if(value.constructor==Array&&/radio|checkbox/.test(this.type))this.checked=(jQuery.inArray(this.value,value)>=0||jQuery.inArray(this.name,value)>=0);else if(jQuery.nodeName(this,"select")){var values=jQuery.makeArray(value);jQuery("option",this).each(function(){this.selected=(jQuery.inArray(this.value,values)>=0||jQuery.inArray(this. [...]
-this.value=value;});},html:function(value){return value==undefined?(this[0]?this[0].innerHTML:null):this.empty().append(value);},replaceWith:function(value){return this.after(value).remove();},eq:function(i){return this.slice(i,i+1);},slice:function(){return this.pushStack(Array.prototype.slice.apply(this,arguments));},map:function(callback){return this.pushStack(jQuery.map(this,function(elem,i){return callback.call(elem,i,elem);}));},andSelf:function(){return this.add(this.prevObject);} [...]
-return this.trigger("setData"+parts[1]+"!",[parts[0],value]).each(function(){jQuery.data(this,key,value);});},removeData:function(key){return this.each(function(){jQuery.removeData(this,key);});},domManip:function(args,table,reverse,callback){var clone=this.length>1,elems;return this.each(function(){if(!elems){elems=jQuery.clean(args,this.ownerDocument);if(reverse)elems.reverse();}var obj=this;if(table&&jQuery.nodeName(this,"table")&&jQuery.nodeName(elems[0],"tr"))obj=this.getElementsByT [...]
-jQuery.globalEval(elem.text||elem.textContent||elem.innerHTML||"");if(elem.parentNode)elem.parentNode.removeChild(elem);}function now(){return+new Date;}jQuery.extend=jQuery.fn.extend=function(){var target=arguments[0]||{},i=1,length=arguments.length,deep=false,options;if(target.constructor==Boolean){deep=target;target=arguments[1]||{};i=2;}if(typeof target!="object"&&typeof target!="function")target={};if(length==i){target=this;--i;}for(;i<length;i++)if((options=arguments[i])!=null)for( [...]
-script.appendChild(document.createTextNode(data));head.insertBefore(script,head.firstChild);head.removeChild(script);}},nodeName:function(elem,name){return elem.nodeName&&elem.nodeName.toUpperCase()==name.toUpperCase();},cache:{},data:function(elem,name,data){elem=elem==window?windowData:elem;var id=elem[expando];if(!id)id=elem[expando]=++uuid;if(name&&!jQuery.cache[id])jQuery.cache[id]={};if(data!==undefined)jQuery.cache[id][name]=data;return name?jQuery.cache[id][name]:id;},removeData: [...]
-for(;i<length;)if(callback.apply(object[i++],args)===false)break;}else{if(length==undefined){for(name in object)if(callback.call(object[name],name,object[name])===false)break;}else
-for(var value=object[0];i<length&&callback.call(value,i,value)!==false;value=object[++i]){}}return object;},prop:function(elem,value,type,i,name){if(jQuery.isFunction(value))value=value.call(elem,i);return value&&value.constructor==Number&&type=="curCSS"&&!exclude.test(name)?value+"px":value;},className:{add:function(elem,classNames){jQuery.each((classNames||"").split(/\s+/),function(i,className){if(elem.nodeType==1&&!jQuery.className.has(elem.className,className))elem.className+=(elem.c [...]
-jQuery.swap(elem,props,getWH);return Math.max(0,val);}return jQuery.curCSS(elem,name,force);},curCSS:function(elem,name,force){var ret,style=elem.style;function color(elem){if(!jQuery.browser.safari)return false;var ret=defaultView.getComputedStyle(elem,null);return!ret||ret.getPropertyValue("color")=="";}if(name=="opacity"&&jQuery.browser.msie){ret=jQuery.attr(style,"opacity");return ret==""?"1":ret;}if(jQuery.browser.opera&&name=="display"){var save=style.outline;style.outline="0 solid [...]
-ret=jQuery.merge(ret,elem);});return ret;},attr:function(elem,name,value){if(!elem||elem.nodeType==3||elem.nodeType==8)return undefined;var notxml=!jQuery.isXMLDoc(elem),set=value!==undefined,msie=jQuery.browser.msie;name=notxml&&jQuery.props[name]||name;if(elem.tagName){var special=/href|src|style/.test(name);if(name=="selected"&&jQuery.browser.safari)elem.parentNode.selectedIndex;if(name in elem&&notxml&&!special){if(set){if(name=="type"&&jQuery.nodeName(elem,"input")&&elem.parentNode) [...]
-while(i)ret[--i]=array[i];}return ret;},inArray:function(elem,array){for(var i=0,length=array.length;i<length;i++)if(array[i]===elem)return i;return-1;},merge:function(first,second){var i=0,elem,pos=first.length;if(jQuery.browser.msie){while(elem=second[i++])if(elem.nodeType!=8)first[pos++]=elem;}else
-while(elem=second[i++])first[pos++]=elem;return first;},unique:function(array){var ret=[],done={};try{for(var i=0,length=array.length;i<length;i++){var id=jQuery.data(array[i]);if(!done[id]){done[id]=true;ret.push(array[i]);}}}catch(e){ret=array;}return ret;},grep:function(elems,callback,inv){var ret=[];for(var i=0,length=elems.length;i<length;i++)if(!inv!=!callback(elems[i],i))ret.push(elems[i]);return ret;},map:function(elems,callback){var ret=[];for(var i=0,length=elems.length;i<lengt [...]
-for(handler in events[type])if(!parts[1]||events[type][handler].type==parts[1])delete events[type][handler];for(ret in events[type])break;if(!ret){if(!jQuery.event.special[type]||jQuery.event.special[type].teardown.call(elem)===false){if(elem.removeEventListener)elem.removeEventListener(type,jQuery.data(elem,"handle"),false);else if(elem.detachEvent)elem.detachEvent("on"+type,jQuery.data(elem,"handle"));}ret=null;delete events[type];}}});}for(ret in events)break;if(!ret){var handle=jQuer [...]
-jQuery.readyList.push(function(){return fn.call(this,jQuery);});return this;}});jQuery.extend({isReady:false,readyList:[],ready:function(){if(!jQuery.isReady){jQuery.isReady=true;if(jQuery.readyList){jQuery.each(jQuery.readyList,function(){this.call(document);});jQuery.readyList=null;}jQuery(document).triggerHandler("ready");}}});var readyBound=false;function bindReady(){if(readyBound)return;readyBound=true;if(document.addEventListener&&!jQuery.browser.opera)document.addEventListener("DO [...]
-xhr.open(type,s.url,s.async);try{if(s.data)xhr.setRequestHeader("Content-Type",s.contentType);if(s.ifModified)xhr.setRequestHeader("If-Modified-Since",jQuery.lastModified[s.url]||"Thu, 01 Jan 1970 00:00:00 GMT");xhr.setRequestHeader("X-Requested-With","XMLHttpRequest");xhr.setRequestHeader("Accept",s.dataType&&s.accepts[s.dataType]?s.accepts[s.dataType]+", */*":s.accepts._default);}catch(e){}if(s.beforeSend&&s.beforeSend(xhr,s)===false){s.global&&jQuery.active--;xhr.abort();return false; [...]
-jQuery.handleError(s,xhr,status);complete();if(s.async)xhr=null;}};if(s.async){var ival=setInterval(onreadystatechange,13);if(s.timeout>0)setTimeout(function(){if(xhr){xhr.abort();if(!requestDone)onreadystatechange("timeout");}},s.timeout);}try{xhr.send(s.data);}catch(e){jQuery.handleError(s,xhr,null,e);}if(!s.async)onreadystatechange();function success(){if(s.success)s.success(data,status);if(s.global)jQuery.event.trigger("ajaxSuccess",[xhr,s]);}function complete(){if(s.complete)s.compl [...]
-for(var j in a)if(a[j]&&a[j].constructor==Array)jQuery.each(a[j],function(){s.push(encodeURIComponent(j)+"="+encodeURIComponent(this));});else
-s.push(encodeURIComponent(j)+"="+encodeURIComponent(jQuery.isFunction(a[j])?a[j]():a[j]));return s.join("&").replace(/%20/g,"+");}});jQuery.fn.extend({show:function(speed,callback){return speed?this.animate({height:"show",width:"show",opacity:"show"},speed,callback):this.filter(":hidden").each(function(){this.style.display=this.oldblock||"";if(jQuery.css(this,"display")=="none"){var elem=jQuery("<"+this.tagName+" />").appendTo("body");this.style.display=elem.css("display");if(this.style. [...]
-e.custom(start,val,"");}});return true;});},queue:function(type,fn){if(jQuery.isFunction(type)||(type&&type.constructor==Array)){fn=type;type="fx";}if(!type||(typeof type=="string"&&!fn))return queue(this[0],type);return this.each(function(){if(fn.constructor==Array)queue(this,type,fn);else{queue(this,type).push(fn);if(queue(this,type).length==1)fn.call(this);}});},stop:function(clearQueue,gotoEnd){var timers=jQuery.timers;if(clearQueue)this.queue([]);this.each(function(){for(var i=timer [...]
\ No newline at end of file
diff --git a/vigranumpy/docsrc/_static/minus.png b/vigranumpy/docsrc/_static/minus.png
deleted file mode 100644
index da1c562..0000000
Binary files a/vigranumpy/docsrc/_static/minus.png and /dev/null differ
diff --git a/vigranumpy/docsrc/_static/plus.png b/vigranumpy/docsrc/_static/plus.png
deleted file mode 100644
index b3cb374..0000000
Binary files a/vigranumpy/docsrc/_static/plus.png and /dev/null differ
diff --git a/vigranumpy/docsrc/_static/pygments.css b/vigranumpy/docsrc/_static/pygments.css
deleted file mode 100644
index 1f2d2b6..0000000
--- a/vigranumpy/docsrc/_static/pygments.css
+++ /dev/null
@@ -1,61 +0,0 @@
-.hll { background-color: #ffffcc }
-.c { color: #408090; font-style: italic } /* Comment */
-.err { border: 1px solid #FF0000 } /* Error */
-.k { color: #007020; font-weight: bold } /* Keyword */
-.o { color: #666666 } /* Operator */
-.cm { color: #408090; font-style: italic } /* Comment.Multiline */
-.cp { color: #007020 } /* Comment.Preproc */
-.c1 { color: #408090; font-style: italic } /* Comment.Single */
-.cs { color: #408090; background-color: #fff0f0 } /* Comment.Special */
-.gd { color: #A00000 } /* Generic.Deleted */
-.ge { font-style: italic } /* Generic.Emph */
-.gr { color: #FF0000 } /* Generic.Error */
-.gh { color: #000080; font-weight: bold } /* Generic.Heading */
-.gi { color: #00A000 } /* Generic.Inserted */
-.go { color: #303030 } /* Generic.Output */
-.gp { color: #c65d09; font-weight: bold } /* Generic.Prompt */
-.gs { font-weight: bold } /* Generic.Strong */
-.gu { color: #800080; font-weight: bold } /* Generic.Subheading */
-.gt { color: #0040D0 } /* Generic.Traceback */
-.kc { color: #007020; font-weight: bold } /* Keyword.Constant */
-.kd { color: #007020; font-weight: bold } /* Keyword.Declaration */
-.kn { color: #007020; font-weight: bold } /* Keyword.Namespace */
-.kp { color: #007020 } /* Keyword.Pseudo */
-.kr { color: #007020; font-weight: bold } /* Keyword.Reserved */
-.kt { color: #902000 } /* Keyword.Type */
-.m { color: #208050 } /* Literal.Number */
-.s { color: #4070a0 } /* Literal.String */
-.na { color: #4070a0 } /* Name.Attribute */
-.nb { color: #007020 } /* Name.Builtin */
-.nc { color: #0e84b5; font-weight: bold } /* Name.Class */
-.no { color: #60add5 } /* Name.Constant */
-.nd { color: #555555; font-weight: bold } /* Name.Decorator */
-.ni { color: #d55537; font-weight: bold } /* Name.Entity */
-.ne { color: #007020 } /* Name.Exception */
-.nf { color: #06287e } /* Name.Function */
-.nl { color: #002070; font-weight: bold } /* Name.Label */
-.nn { color: #0e84b5; font-weight: bold } /* Name.Namespace */
-.nt { color: #062873; font-weight: bold } /* Name.Tag */
-.nv { color: #bb60d5 } /* Name.Variable */
-.ow { color: #007020; font-weight: bold } /* Operator.Word */
-.w { color: #bbbbbb } /* Text.Whitespace */
-.mf { color: #208050 } /* Literal.Number.Float */
-.mh { color: #208050 } /* Literal.Number.Hex */
-.mi { color: #208050 } /* Literal.Number.Integer */
-.mo { color: #208050 } /* Literal.Number.Oct */
-.sb { color: #4070a0 } /* Literal.String.Backtick */
-.sc { color: #4070a0 } /* Literal.String.Char */
-.sd { color: #4070a0; font-style: italic } /* Literal.String.Doc */
-.s2 { color: #4070a0 } /* Literal.String.Double */
-.se { color: #4070a0; font-weight: bold } /* Literal.String.Escape */
-.sh { color: #4070a0 } /* Literal.String.Heredoc */
-.si { color: #70a0d0; font-style: italic } /* Literal.String.Interpol */
-.sx { color: #c65d09 } /* Literal.String.Other */
-.sr { color: #235388 } /* Literal.String.Regex */
-.s1 { color: #4070a0 } /* Literal.String.Single */
-.ss { color: #517918 } /* Literal.String.Symbol */
-.bp { color: #007020 } /* Name.Builtin.Pseudo */
-.vc { color: #bb60d5 } /* Name.Variable.Class */
-.vg { color: #bb60d5 } /* Name.Variable.Global */
-.vi { color: #bb60d5 } /* Name.Variable.Instance */
-.il { color: #208050 } /* Literal.Number.Integer.Long */
\ No newline at end of file
diff --git a/vigranumpy/docsrc/_static/searchtools.js b/vigranumpy/docsrc/_static/searchtools.js
deleted file mode 100644
index e022625..0000000
--- a/vigranumpy/docsrc/_static/searchtools.js
+++ /dev/null
@@ -1,467 +0,0 @@
-/**
- * helper function to return a node containing the
- * search summary for a given text. keywords is a list
- * of stemmed words, hlwords is the list of normal, unstemmed
- * words. the first one is used to find the occurance, the
- * latter for highlighting it.
- */
-
-jQuery.makeSearchSummary = function(text, keywords, hlwords) {
-  var textLower = text.toLowerCase();
-  var start = 0;
-  $.each(keywords, function() {
-    var i = textLower.indexOf(this.toLowerCase());
-    if (i > -1)
-      start = i;
-  });
-  start = Math.max(start - 120, 0);
-  var excerpt = ((start > 0) ? '...' : '') +
-  $.trim(text.substr(start, 240)) +
-  ((start + 240 - text.length) ? '...' : '');
-  var rv = $('<div class="context"></div>').text(excerpt);
-  $.each(hlwords, function() {
-    rv = rv.highlightText(this, 'highlight');
-  });
-  return rv;
-}
-
-/**
- * Porter Stemmer
- */
-var PorterStemmer = function() {
-
-  var step2list = {
-    ational: 'ate',
-    tional: 'tion',
-    enci: 'ence',
-    anci: 'ance',
-    izer: 'ize',
-    bli: 'ble',
-    alli: 'al',
-    entli: 'ent',
-    eli: 'e',
-    ousli: 'ous',
-    ization: 'ize',
-    ation: 'ate',
-    ator: 'ate',
-    alism: 'al',
-    iveness: 'ive',
-    fulness: 'ful',
-    ousness: 'ous',
-    aliti: 'al',
-    iviti: 'ive',
-    biliti: 'ble',
-    logi: 'log'
-  };
-
-  var step3list = {
-    icate: 'ic',
-    ative: '',
-    alize: 'al',
-    iciti: 'ic',
-    ical: 'ic',
-    ful: '',
-    ness: ''
-  };
-
-  var c = "[^aeiou]";          // consonant
-  var v = "[aeiouy]";          // vowel
-  var C = c + "[^aeiouy]*";    // consonant sequence
-  var V = v + "[aeiou]*";      // vowel sequence
-
-  var mgr0 = "^(" + C + ")?" + V + C;                      // [C]VC... is m>0
-  var meq1 = "^(" + C + ")?" + V + C + "(" + V + ")?$";    // [C]VC[V] is m=1
-  var mgr1 = "^(" + C + ")?" + V + C + V + C;              // [C]VCVC... is m>1
-  var s_v   = "^(" + C + ")?" + v;                         // vowel in stem
-
-  this.stemWord = function (w) {
-    var stem;
-    var suffix;
-    var firstch;
-    var origword = w;
-
-    if (w.length < 3)
-      return w;
-
-    var re;
-    var re2;
-    var re3;
-    var re4;
-
-    firstch = w.substr(0,1);
-    if (firstch == "y")
-      w = firstch.toUpperCase() + w.substr(1);
-
-    // Step 1a
-    re = /^(.+?)(ss|i)es$/;
-    re2 = /^(.+?)([^s])s$/;
-
-    if (re.test(w))
-      w = w.replace(re,"$1$2");
-    else if (re2.test(w))
-      w = w.replace(re2,"$1$2");
-
-    // Step 1b
-    re = /^(.+?)eed$/;
-    re2 = /^(.+?)(ed|ing)$/;
-    if (re.test(w)) {
-      var fp = re.exec(w);
-      re = new RegExp(mgr0);
-      if (re.test(fp[1])) {
-        re = /.$/;
-        w = w.replace(re,"");
-      }
-    }
-    else if (re2.test(w)) {
-      var fp = re2.exec(w);
-      stem = fp[1];
-      re2 = new RegExp(s_v);
-      if (re2.test(stem)) {
-        w = stem;
-        re2 = /(at|bl|iz)$/;
-        re3 = new RegExp("([^aeiouylsz])\\1$");
-        re4 = new RegExp("^" + C + v + "[^aeiouwxy]$");
-        if (re2.test(w))
-          w = w + "e";
-        else if (re3.test(w)) {
-          re = /.$/;
-          w = w.replace(re,"");
-        }
-        else if (re4.test(w))
-          w = w + "e";
-      }
-    }
-
-    // Step 1c
-    re = /^(.+?)y$/;
-    if (re.test(w)) {
-      var fp = re.exec(w);
-      stem = fp[1];
-      re = new RegExp(s_v);
-      if (re.test(stem))
-        w = stem + "i";
-    }
-
-    // Step 2
-    re = /^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/;
-    if (re.test(w)) {
-      var fp = re.exec(w);
-      stem = fp[1];
-      suffix = fp[2];
-      re = new RegExp(mgr0);
-      if (re.test(stem))
-        w = stem + step2list[suffix];
-    }
-
-    // Step 3
-    re = /^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/;
-    if (re.test(w)) {
-      var fp = re.exec(w);
-      stem = fp[1];
-      suffix = fp[2];
-      re = new RegExp(mgr0);
-      if (re.test(stem))
-        w = stem + step3list[suffix];
-    }
-
-    // Step 4
-    re = /^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/;
-    re2 = /^(.+?)(s|t)(ion)$/;
-    if (re.test(w)) {
-      var fp = re.exec(w);
-      stem = fp[1];
-      re = new RegExp(mgr1);
-      if (re.test(stem))
-        w = stem;
-    }
-    else if (re2.test(w)) {
-      var fp = re2.exec(w);
-      stem = fp[1] + fp[2];
-      re2 = new RegExp(mgr1);
-      if (re2.test(stem))
-        w = stem;
-    }
-
-    // Step 5
-    re = /^(.+?)e$/;
-    if (re.test(w)) {
-      var fp = re.exec(w);
-      stem = fp[1];
-      re = new RegExp(mgr1);
-      re2 = new RegExp(meq1);
-      re3 = new RegExp("^" + C + v + "[^aeiouwxy]$");
-      if (re.test(stem) || (re2.test(stem) && !(re3.test(stem))))
-        w = stem;
-    }
-    re = /ll$/;
-    re2 = new RegExp(mgr1);
-    if (re.test(w) && re2.test(w)) {
-      re = /.$/;
-      w = w.replace(re,"");
-    }
-
-    // and turn initial Y back to y
-    if (firstch == "y")
-      w = firstch.toLowerCase() + w.substr(1);
-    return w;
-  }
-}
-
-
-/**
- * Search Module
- */
-var Search = {
-
-  _index : null,
-  _queued_query : null,
-  _pulse_status : -1,
-
-  init : function() {
-      var params = $.getQueryParameters();
-      if (params.q) {
-          var query = params.q[0];
-          $('input[name="q"]')[0].value = query;
-          this.performSearch(query);
-      }
-  },
-
-  /**
-   * Sets the index
-   */
-  setIndex : function(index) {
-    var q;
-    this._index = index;
-    if ((q = this._queued_query) !== null) {
-      this._queued_query = null;
-      Search.query(q);
-    }
-  },
-
-  hasIndex : function() {
-      return this._index !== null;
-  },
-
-  deferQuery : function(query) {
-      this._queued_query = query;
-  },
-
-  stopPulse : function() {
-      this._pulse_status = 0;
-  },
-
-  startPulse : function() {
-    if (this._pulse_status >= 0)
-        return;
-    function pulse() {
-      Search._pulse_status = (Search._pulse_status + 1) % 4;
-      var dotString = '';
-      for (var i = 0; i < Search._pulse_status; i++)
-        dotString += '.';
-      Search.dots.text(dotString);
-      if (Search._pulse_status > -1)
-        window.setTimeout(pulse, 500);
-    };
-    pulse();
-  },
-
-  /**
-   * perform a search for something
-   */
-  performSearch : function(query) {
-    // create the required interface elements
-    this.out = $('#search-results');
-    this.title = $('<h2>' + _('Searching') + '</h2>').appendTo(this.out);
-    this.dots = $('<span></span>').appendTo(this.title);
-    this.status = $('<p style="display: none"></p>').appendTo(this.out);
-    this.output = $('<ul class="search"/>').appendTo(this.out);
-
-    $('#search-progress').text(_('Preparing search...'));
-    this.startPulse();
-
-    // index already loaded, the browser was quick!
-    if (this.hasIndex())
-      this.query(query);
-    else
-      this.deferQuery(query);
-  },
-
-  query : function(query) {
-    // stem the searchterms and add them to the
-    // correct list
-    var stemmer = new PorterStemmer();
-    var searchterms = [];
-    var excluded = [];
-    var hlterms = [];
-    var tmp = query.split(/\s+/);
-    var object = (tmp.length == 1) ? tmp[0].toLowerCase() : null;
-    for (var i = 0; i < tmp.length; i++) {
-      // stem the word
-      var word = stemmer.stemWord(tmp[i]).toLowerCase();
-      // select the correct list
-      if (word[0] == '-') {
-        var toAppend = excluded;
-        word = word.substr(1);
-      }
-      else {
-        var toAppend = searchterms;
-        hlterms.push(tmp[i].toLowerCase());
-      }
-      // only add if not already in the list
-      if (!$.contains(toAppend, word))
-        toAppend.push(word);
-    };
-    var highlightstring = '?highlight=' + $.urlencode(hlterms.join(" "));
-
-    console.debug('SEARCH: searching for:');
-    console.info('required: ', searchterms);
-    console.info('excluded: ', excluded);
-
-    // prepare search
-    var filenames = this._index.filenames;
-    var titles = this._index.titles;
-    var terms = this._index.terms;
-    var descrefs = this._index.descrefs;
-    var modules = this._index.modules;
-    var desctypes = this._index.desctypes;
-    var fileMap = {};
-    var files = null;
-    var objectResults = [];
-    var regularResults = [];
-    $('#search-progress').empty();
-
-    // lookup as object
-    if (object != null) {
-      for (var module in modules) {
-        if (module.indexOf(object) > -1) {
-          fn = modules[module];
-          descr = _('module, in ') + titles[fn];
-          objectResults.push([filenames[fn], module, '#module-'+module, descr]);
-        }
-      }
-      for (var prefix in descrefs) {
-        for (var name in descrefs[prefix]) {
-          var fullname = (prefix ? prefix + '.' : '') + name;
-          if (fullname.toLowerCase().indexOf(object) > -1) {
-            match = descrefs[prefix][name];
-            descr = desctypes[match[1]] + _(', in ') + titles[match[0]];
-            objectResults.push([filenames[match[0]], fullname, '#'+fullname, descr]);
-          }
-        }
-      }
-    }
-
-    // sort results descending
-    objectResults.sort(function(a, b) {
-      return (a[1] > b[1]) ? -1 : ((a[1] < b[1]) ? 1 : 0);
-    });
-
-
-    // perform the search on the required terms
-    for (var i = 0; i < searchterms.length; i++) {
-      var word = searchterms[i];
-      // no match but word was a required one
-      if ((files = terms[word]) == null)
-        break;
-      if (files.length == undefined) {
-        files = [files];
-      }
-      // create the mapping
-      for (var j = 0; j < files.length; j++) {
-        var file = files[j];
-        if (file in fileMap)
-          fileMap[file].push(word);
-        else
-          fileMap[file] = [word];
-      }
-    }
-
-    // now check if the files don't contain excluded terms
-    for (var file in fileMap) {
-      var valid = true;
-
-      // check if all requirements are matched
-      if (fileMap[file].length != searchterms.length)
-        continue;
-
-      // ensure that none of the excluded terms is in the
-      // search result.
-      for (var i = 0; i < excluded.length; i++) {
-        if (terms[excluded[i]] == file ||
-            $.contains(terms[excluded[i]] || [], file)) {
-          valid = false;
-          break;
-        }
-      }
-
-      // if we have still a valid result we can add it
-      // to the result list
-      if (valid)
-        regularResults.push([filenames[file], titles[file], '', null]);
-    }
-
-    // delete unused variables in order to not waste
-    // memory until list is retrieved completely
-    delete filenames, titles, terms;
-
-    // now sort the regular results descending by title
-    regularResults.sort(function(a, b) {
-      var left = a[1].toLowerCase();
-      var right = b[1].toLowerCase();
-      return (left > right) ? -1 : ((left < right) ? 1 : 0);
-    });
-
-    // combine both
-    var results = regularResults.concat(objectResults);
-
-    // print the results
-    var resultCount = results.length;
-    function displayNextItem() {
-      // results left, load the summary and display it
-      if (results.length) {
-        var item = results.pop();
-        var listItem = $('<li style="display:none"></li>');
-        listItem.append($('<a/>').attr(
-          'href',
-          item[0] + DOCUMENTATION_OPTIONS.FILE_SUFFIX +
-          highlightstring + item[2]).html(item[1]));
-        if (item[3]) {
-          listItem.append($('<span> (' + item[3] + ')</span>'));
-          Search.output.append(listItem);
-          listItem.slideDown(5, function() {
-            displayNextItem();
-          });
-        } else if (DOCUMENTATION_OPTIONS.HAS_SOURCE) {
-          $.get('_sources/' + item[0] + '.txt', function(data) {
-            listItem.append($.makeSearchSummary(data, searchterms, hlterms));
-            Search.output.append(listItem);
-            listItem.slideDown(5, function() {
-              displayNextItem();
-            });
-          });
-        } else {
-          // no source available, just display title
-          Search.output.append(listItem);
-          listItem.slideDown(5, function() {
-            displayNextItem();
-          });
-        }
-      }
-      // search finished, update title and status message
-      else {
-        Search.stopPulse();
-        Search.title.text(_('Search Results'));
-        if (!resultCount)
-          Search.status.text(_('Your search did not match any documents. Please make sure that all words are spelled correctly and that you\'ve selected enough categories.'));
-        else
-            Search.status.text(_('Search finished, found %s page(s) matching the search query.').replace('%s', resultCount));
-        Search.status.fadeIn(500);
-      }
-    }
-    displayNextItem();
-  }
-}
-
-$(document).ready(function() {
-  Search.init();
-});

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



More information about the debian-science-commits mailing list