summaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
authorDavid Schleef <ds@schleef.org>2005-01-18 08:44:18 +0000
committerDavid Schleef <ds@schleef.org>2005-01-18 08:44:18 +0000
commit03f3547d24b70f14c876ad0d145a37e3d72c92be (patch)
treefbc1cc951857b068fe171fb84d736586a8e5e022 /doc
parent5b58af911944e0764e4ce1554d0b1fb6e34f97de (diff)
* Makefile.am: documentation. woohoo.
* configure.ac: * doc/Makefile.am: * doc/build_prototypes_doc.c: (main), (print_header), (print_footer): * doc/liboil-docs.sgml: * doc/liboil-sections.txt: * doc/tmpl/conv.sgml: * doc/tmpl/dct.sgml: * doc/tmpl/jpeg.sgml: * doc/tmpl/liboil-unused.sgml: * doc/tmpl/liboil.sgml: * doc/tmpl/liboilcpu.sgml: * doc/tmpl/liboildebug.sgml: * doc/tmpl/liboilfuncs-doc.sgml: * doc/tmpl/liboilfunction.sgml: * doc/tmpl/liboilparameter.sgml: * doc/tmpl/liboilprofile.sgml: * doc/tmpl/liboilprototype.sgml: * doc/tmpl/liboilrandom.sgml: * doc/tmpl/liboiltest.sgml: * doc/tmpl/liboiltypes.sgml: * doc/tmpl/md5.sgml: * doc/tmpl/simdpack.sgml: * liboil/liboil.h: * liboil/liboildebug.h: * liboil/liboilfunction.c: * liboil/liboilparameter.h: * liboil/liboiltest.c: (check_holes): * liboil/liboiltypes.h:
Diffstat (limited to 'doc')
-rw-r--r--doc/Makefile.am200
-rw-r--r--doc/build_prototypes_doc.c86
-rw-r--r--doc/liboil-docs.sgml50
-rw-r--r--doc/liboil-sections.txt382
-rw-r--r--doc/tmpl/conv.sgml16
-rw-r--r--doc/tmpl/dct.sgml16
-rw-r--r--doc/tmpl/jpeg.sgml16
-rw-r--r--doc/tmpl/liboil-unused.sgml3082
-rw-r--r--doc/tmpl/liboil.sgml33
-rw-r--r--doc/tmpl/liboilcpu.sgml24
-rw-r--r--doc/tmpl/liboildebug.sgml121
-rw-r--r--doc/tmpl/liboilfuncs-doc.sgml2235
-rw-r--r--doc/tmpl/liboilfunction.sgml345
-rw-r--r--doc/tmpl/liboilparameter.sgml96
-rw-r--r--doc/tmpl/liboilprofile.sgml95
-rw-r--r--doc/tmpl/liboilprototype.sgml87
-rw-r--r--doc/tmpl/liboilrandom.sgml198
-rw-r--r--doc/tmpl/liboiltest.sgml124
-rw-r--r--doc/tmpl/liboiltypes.sgml244
-rw-r--r--doc/tmpl/md5.sgml16
-rw-r--r--doc/tmpl/simdpack.sgml16
21 files changed, 7482 insertions, 0 deletions
diff --git a/doc/Makefile.am b/doc/Makefile.am
new file mode 100644
index 0000000..4e6f730
--- /dev/null
+++ b/doc/Makefile.am
@@ -0,0 +1,200 @@
+## Process this file with automake to produce Makefile.in
+
+# This is a blank Makefile.am for using gtk-doc.
+# Copy this to your project's API docs directory and modify the variables to
+# suit your project. See the GTK+ Makefiles in gtk+/docs/reference for examples
+# of using the various options.
+
+# The name of the module, e.g. 'glib'.
+DOC_MODULE=liboil
+
+# The top-level SGML file. Change it if you want.
+DOC_MAIN_SGML_FILE=$(DOC_MODULE)-docs.sgml
+
+# The directory containing the source code. Relative to $(srcdir).
+# gtk-doc will search all .c & .h files beneath here for inline comments
+# documenting functions and macros.
+DOC_SOURCE_DIR=../liboil
+
+# Extra options to pass to gtkdoc-scanobj or gtkdoc-scangobj.
+SCANOBJ_OPTIONS=
+
+# Extra options to supply to gtkdoc-scan.
+SCAN_OPTIONS=
+
+# Extra options to supply to gtkdoc-mkdb.
+MKDB_OPTIONS=
+
+# Extra options to supply to gtkdoc-fixref.
+FIXXREF_OPTIONS=
+
+# Used for dependencies.
+HFILE_GLOB=
+CFILE_GLOB=
+
+# Header files to ignore when scanning.
+IGNORE_HFILES=liboilfuncs.h
+EXTRA_HFILES=./liboilfuncs-doc.h
+
+# Images to copy into HTML directory.
+HTML_IMAGES =
+
+# Extra SGML files that are included by $(DOC_MAIN_SGML_FILE).
+content_files =
+
+# Other files to distribute.
+extra_files =
+
+# CFLAGS and LDFLAGS for compiling scan program. Only needed if your app/lib
+# contains GtkObjects/GObjects and you want to document signals and properties.
+GTKDOC_CFLAGS =
+GTKDOC_LIBS =
+
+GTKDOC_CC=$(LIBTOOL) --mode=compile $(CC)
+GTKDOC_LD=$(LIBTOOL) --mode=link $(CC)
+
+# If you need to override some of the declarations, place them in the
+# $(DOC_MODULE)-overrides.txt file and uncomment the second line here.
+DOC_OVERRIDES =
+#DOC_OVERRIDES = $(DOC_MODULE)-overrides.txt
+
+
+
+###########################################################################
+# Everything below here is generic and you shouldn't need to change it.
+###########################################################################
+
+TARGET_DIR=$(HTML_DIR)/$(DOC_MODULE)
+
+EXTRA_DIST = \
+ $(content_files) \
+ $(extra_files) \
+ $(HTML_IMAGES) \
+ $(DOC_MAIN_SGML_FILE) \
+ $(DOC_MODULE).types \
+ $(DOC_MODULE)-sections.txt \
+ $(DOC_OVERRIDES)
+
+DOC_STAMPS=scan-build.stamp tmpl-build.stamp sgml-build.stamp html-build.stamp \
+ $(srcdir)/tmpl.stamp $(srcdir)/sgml.stamp $(srcdir)/html.stamp
+
+SCANOBJ_FILES = \
+ $(DOC_MODULE).args \
+ $(DOC_MODULE).hierarchy \
+ $(DOC_MODULE).interfaces \
+ $(DOC_MODULE).prerequisites \
+ $(DOC_MODULE).signals
+
+if ENABLE_GTK_DOC
+all-local: html-build.stamp
+
+#### scan ####
+
+scan-build.stamp: $(HFILE_GLOB) $(EXTRA_HFILES)
+ @echo '*** Scanning header files ***'
+ if grep -l '^..*$$' $(srcdir)/$(DOC_MODULE).types > /dev/null ; then \
+ CC="$(GTKDOC_CC)" LD="$(GTKDOC_LD)" CFLAGS="$(GTKDOC_CFLAGS)" LDFLAGS="$(GTKDOC_LIBS)" gtkdoc-scanobj $(SCANOBJ_OPTIONS) --module=$(DOC_MODULE) --output-dir=$(srcdir) ; \
+ else \
+ cd $(srcdir) ; \
+ for i in $(SCANOBJ_FILES) ; do \
+ test -f $$i || touch $$i ; \
+ done \
+ fi
+ cd $(srcdir) && \
+ gtkdoc-scan --module=$(DOC_MODULE) --source-dir=$(DOC_SOURCE_DIR) --ignore-headers="$(IGNORE_HFILES)" $(SCAN_OPTIONS) $(EXTRA_HFILES)
+ touch scan-build.stamp
+
+$(DOC_MODULE)-decl.txt $(SCANOBJ_FILES): scan-build.stamp
+ @true
+
+#### templates ####
+
+tmpl-build.stamp: $(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(DOC_MODULE)-sections.txt $(DOC_OVERRIDES)
+ @echo '*** Rebuilding template files ***'
+ cd $(srcdir) && gtkdoc-mktmpl --module=$(DOC_MODULE)
+ touch tmpl-build.stamp
+
+tmpl.stamp: tmpl-build.stamp
+ @true
+
+#### sgml ####
+
+sgml-build.stamp: tmpl.stamp $(CFILE_GLOB) $(srcdir)/tmpl/*.sgml
+ @echo '*** Building SGML ***'
+ cd $(srcdir) && \
+ gtkdoc-mkdb --module=$(DOC_MODULE) --source-dir=$(DOC_SOURCE_DIR) --main-sgml-file=$(DOC_MAIN_SGML_FILE) $(MKDB_OPTIONS)
+ touch sgml-build.stamp
+
+sgml.stamp: sgml-build.stamp
+ @true
+
+#### html ####
+
+html-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files)
+ @echo '*** Building HTML ***'
+ test -d $(srcdir)/html || mkdir $(srcdir)/html
+ cd $(srcdir)/html && gtkdoc-mkhtml $(DOC_MODULE) ../$(DOC_MAIN_SGML_FILE)
+ test "x$(HTML_IMAGES)" = "x" || ( cd $(srcdir) && cp $(HTML_IMAGES) html )
+ @echo '-- Fixing Crossreferences'
+ cd $(srcdir) && gtkdoc-fixxref --module-dir=html --html-dir=$(HTML_DIR) $(FIXXREF_OPTIONS)
+ touch html-build.stamp
+endif
+
+##############
+
+clean-local:
+ rm -f *~ *.bak $(SCANOBJ_FILES) *-unused.txt $(DOC_STAMPS)
+
+maintainer-clean-local: clean
+ cd $(srcdir) && rm -rf sgml html $(DOC_MODULE)-decl-list.txt $(DOC_MODULE)-decl.txt
+
+install-data-local:
+ $(mkinstalldirs) $(DESTDIR)$(TARGET_DIR)
+ (installfiles=`echo $(srcdir)/html/*.html`; \
+ if test "$$installfiles" = '$(srcdir)/html/*.html'; \
+ then echo '-- Nothing to install' ; \
+ else \
+ for i in $$installfiles; do \
+ echo '-- Installing '$$i ; \
+ $(INSTALL_DATA) $$i $(DESTDIR)$(TARGET_DIR); \
+ done; \
+ echo '-- Installing $(srcdir)/html/index.sgml' ; \
+ $(INSTALL_DATA) $(srcdir)/html/index.sgml $(DESTDIR)$(TARGET_DIR); \
+ fi)
+
+#
+# Require gtk-doc when making dist
+#
+if ENABLE_GTK_DOC
+dist-check-gtkdoc:
+else
+dist-check-gtkdoc:
+ @echo "*** gtk-doc must be installed and enabled in order to make dist"
+ @false
+endif
+
+dist-hook: dist-check-gtkdoc dist-hook-local
+ mkdir $(distdir)/tmpl
+ mkdir $(distdir)/sgml
+ mkdir $(distdir)/html
+ -cp $(srcdir)/tmpl/*.sgml $(distdir)/tmpl
+ -cp $(srcdir)/sgml/*.sgml $(distdir)/sgml
+ -cp $(srcdir)/html/index.sgml $(distdir)/html
+ -cp $(srcdir)/html/*.html $(srcdir)/html/*.css $(distdir)/html
+
+ images=$(HTML_IMAGES) ; \
+ for i in $$images ; do \
+ cp $(srcdir)/$$i $(distdir)/html ; \
+ done
+
+.PHONY : dist-hook-local
+
+noinst_PROGRAMS = build_prototypes_doc
+
+build_prototypes_doc_SOURCES = build_prototypes_doc.c
+build_prototypes_doc_CFLAGS = $(LIBOIL_CFLAGS)
+build_prototypes_doc_LDFLAGS = $(LIBOIL_LIBS)
+
+liboilfuncs-doc.h:
+ ./build_prototypes_doc >liboilfuncs-doc.h
+
diff --git a/doc/build_prototypes_doc.c b/doc/build_prototypes_doc.c
new file mode 100644
index 0000000..75c389c
--- /dev/null
+++ b/doc/build_prototypes_doc.c
@@ -0,0 +1,86 @@
+/*
+ * LIBOIL - Library of Optimized Inner Loops
+ * Copyright (c) 2004 David A. Schleef <ds@schleef.org>
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
+ * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+ * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
+ * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+
+#include <stdio.h>
+#include <liboil/liboil.h>
+#include <ctype.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include <liboil/liboilprototype.h>
+
+void print_header (void);
+void print_footer (void);
+
+int main (int argc, char *argv[])
+{
+ OilFunctionClass *klass;
+ OilPrototype *proto;
+ int i;
+ int n;
+ char *string;
+
+ oil_init ();
+
+ print_header ();
+
+ n = oil_class_get_n_classes ();
+ for (i=0;i<n; i++ ){
+ klass = oil_class_get_by_index (i);
+
+ if(klass->prototype) {
+ proto = oil_prototype_from_string (klass->prototype);
+ if (proto) {
+ string = oil_prototype_to_string (proto);
+
+ printf ("void oil_%s (%s);\n", klass->name, string);
+
+ oil_prototype_free (proto);
+ free (string);
+ } else {
+ printf("/* ERROR: could not parse %s(%s) */\n", klass->name, klass->prototype);
+ }
+ }
+ }
+
+ print_footer ();
+
+ return 0;
+}
+
+void print_header (void)
+{
+ printf ("/* This file is automatically generated. Do not edit. */\n");
+ printf ("\n");
+}
+
+void print_footer (void)
+{
+ printf ("\n");
+}
+
diff --git a/doc/liboil-docs.sgml b/doc/liboil-docs.sgml
new file mode 100644
index 0000000..61e3586
--- /dev/null
+++ b/doc/liboil-docs.sgml
@@ -0,0 +1,50 @@
+<!doctype book PUBLIC "-//Davenport//DTD DocBook V3.0//EN" [
+<!ENTITY liboil SYSTEM "sgml/liboil.sgml">
+<!ENTITY liboilcpu SYSTEM "sgml/liboilcpu.sgml">
+<!ENTITY liboildebug SYSTEM "sgml/liboildebug.sgml">
+<!ENTITY liboilfuncs-doc SYSTEM "sgml/liboilfuncs-doc.sgml">
+<!ENTITY liboilfunction SYSTEM "sgml/liboilfunction.sgml">
+<!ENTITY liboilparameter SYSTEM "sgml/liboilparameter.sgml">
+<!ENTITY liboilprofile SYSTEM "sgml/liboilprofile.sgml">
+<!ENTITY liboilprototype SYSTEM "sgml/liboilprototype.sgml">
+<!ENTITY liboilrandom SYSTEM "sgml/liboilrandom.sgml">
+<!ENTITY liboiltest SYSTEM "sgml/liboiltest.sgml">
+
+]>
+<book id="index">
+ <bookinfo>
+ <title>Liboil Reference Manual</title>
+ </bookinfo>
+
+ <chapter>
+ <title>Liboil Stable API</title>
+
+ <para>
+ These functions are part of the stable API, and will not change
+ during the lifetime of the 0.3 series.
+ </para>
+
+ &liboil;
+ &liboilfuncs-doc;
+
+ </chapter>
+ <chapter>
+ <title>Liboil Unstable API</title>
+
+ <para>
+ These functions are part of the unstable API, and may change
+ between releases in the 0.3 series. These functions should not
+ be used by applications. Some of this functionality
+ may be moved to the stable API during the 0.3 series.
+ </para>
+
+ &liboilcpu;
+ &liboildebug;
+ &liboilfunction;
+ &liboilparameter;
+ &liboilprofile;
+ &liboilprototype;
+ &liboilrandom;
+ &liboiltest;
+ </chapter>
+</book>
diff --git a/doc/liboil-sections.txt b/doc/liboil-sections.txt
new file mode 100644
index 0000000..b97e064
--- /dev/null
+++ b/doc/liboil-sections.txt
@@ -0,0 +1,382 @@
+<SECTION>
+<FILE>liboilfuncs-doc</FILE>
+oil_abs_f32_f32
+oil_abs_f64_f64
+oil_abs_u16_s16
+oil_abs_u32_s32
+oil_abs_u8_s8
+oil_argb_paint_u8
+oil_average2_u8
+oil_ayuv2argb_u8
+oil_clip_f32
+oil_clip_f64
+oil_clip_s16
+oil_clip_s32
+oil_clip_s8
+oil_clip_u16
+oil_clip_u32
+oil_clip_u8
+oil_clipconv8x8_u8_s16
+oil_clipconv_s16_f32
+oil_clipconv_s16_f64
+oil_clipconv_s16_s32
+oil_clipconv_s16_u16
+oil_clipconv_s16_u32
+oil_clipconv_s32_f32
+oil_clipconv_s32_f64
+oil_clipconv_s32_u32
+oil_clipconv_s8_f32
+oil_clipconv_s8_f64
+oil_clipconv_s8_s16
+oil_clipconv_s8_s32
+oil_clipconv_s8_u16
+oil_clipconv_s8_u32
+oil_clipconv_s8_u8
+oil_clipconv_u16_f32
+oil_clipconv_u16_f64
+oil_clipconv_u16_s16
+oil_clipconv_u16_s32
+oil_clipconv_u16_u32
+oil_clipconv_u32_f32
+oil_clipconv_u32_f64
+oil_clipconv_u32_s32
+oil_clipconv_u8_f32
+oil_clipconv_u8_f64
+oil_clipconv_u8_s16
+oil_clipconv_u8_s32
+oil_clipconv_u8_s8
+oil_clipconv_u8_u16
+oil_clipconv_u8_u32
+oil_conv8x8_f64_s16
+oil_conv8x8_s16_f64
+oil_conv_f32_f64
+oil_conv_f32_s16
+oil_conv_f32_s32
+oil_conv_f32_s8
+oil_conv_f32_u16
+oil_conv_f32_u32
+oil_conv_f32_u8
+oil_conv_f64_f32
+oil_conv_f64_s16
+oil_conv_f64_s32
+oil_conv_f64_s8
+oil_conv_f64_u16
+oil_conv_f64_u32
+oil_conv_f64_u8
+oil_conv_s16_f32
+oil_conv_s16_f64
+oil_conv_s16_s32
+oil_conv_s16_s8
+oil_conv_s16_u16
+oil_conv_s16_u32
+oil_conv_s16_u8
+oil_conv_s32_f32
+oil_conv_s32_f64
+oil_conv_s32_s16
+oil_conv_s32_s8
+oil_conv_s32_u16
+oil_conv_s32_u32
+oil_conv_s32_u8
+oil_conv_s8_f32
+oil_conv_s8_f64
+oil_conv_s8_s16
+oil_conv_s8_s32
+oil_conv_s8_u16
+oil_conv_s8_u32
+oil_conv_s8_u8
+oil_conv_u16_f32
+oil_conv_u16_f64
+oil_conv_u16_s16
+oil_conv_u16_s32
+oil_conv_u16_s8
+oil_conv_u16_u32
+oil_conv_u16_u8
+oil_conv_u32_f32
+oil_conv_u32_f64
+oil_conv_u32_s16
+oil_conv_u32_s32
+oil_conv_u32_s8
+oil_conv_u32_u16
+oil_conv_u32_u8
+oil_conv_u8_f32
+oil_conv_u8_f64
+oil_conv_u8_s16
+oil_conv_u8_s32
+oil_conv_u8_s8
+oil_conv_u8_u16
+oil_conv_u8_u32
+oil_copy_u8
+oil_dct36_f32
+oil_dequantize8x8_s16
+oil_diffsquaresum_f64
+oil_fdct8_f64
+oil_fdct8x8_f64
+oil_fdct8x8s_s16
+oil_idct8_f64
+oil_idct8x8_f64
+oil_idct8x8_s16
+oil_imdct12_f64
+oil_imdct32_f32
+oil_imdct36_f64
+oil_md5
+oil_mdct12_f64
+oil_mdct36_f64
+oil_mix_u8
+oil_mult8x8_s16
+oil_multsum_f32
+oil_multsum_f64
+oil_null
+oil_permute_f32
+oil_permute_f64
+oil_permute_s16
+oil_permute_s32
+oil_permute_s8
+oil_permute_u16
+oil_permute_u32
+oil_permute_u8
+oil_rgb2bgr
+oil_rgb2rgba
+oil_sad8x8_f64
+oil_sad8x8_s16
+oil_scalaradd_f32
+oil_scalaradd_f64
+oil_scalaradd_s16
+oil_scalaradd_s32
+oil_scalaradd_s8
+oil_scalaradd_u16
+oil_scalaradd_u32
+oil_scalaradd_u8
+oil_scalarmult_f32
+oil_scalarmult_f64
+oil_scalarmult_s16
+oil_scalarmult_s32
+oil_scalarmult_s8
+oil_scalarmult_u16
+oil_scalarmult_u32
+oil_scalarmult_u8
+oil_scanlinescale2_u8
+oil_sincos_f64
+oil_splat_u32
+oil_splat_u8
+oil_squaresum_f64
+oil_sum_f64
+oil_tablelookup_u8
+oil_trans8x8_f64
+oil_trans8x8_u16
+oil_trans8x8_u32
+oil_trans8x8_u8
+oil_unzigzag8x8_s16
+oil_vectoradd_f32
+oil_vectoradd_f64
+oil_vectoradd_s16
+oil_vectoradd_s32
+oil_vectoradd_s8
+oil_vectoradd_u16
+oil_vectoradd_u32
+oil_vectoradd_u8
+oil_yuv2rgbx_sub2_u8
+oil_yuv2rgbx_sub4_u8
+oil_yuv2rgbx_u8
+oil_zigzag8x8_s16
+</SECTION>
+
+<SECTION>
+<FILE>liboil</FILE>
+oil_init
+oil_memcpy
+</SECTION>
+
+<SECTION>
+<FILE>liboilcpu</FILE>
+oil_cpu_get_flags
+</SECTION>
+
+<SECTION>
+<FILE>liboildebug</FILE>
+OilDebugPrintFunc
+OilDebugLevel
+OIL_ERROR
+OIL_WARNING
+OIL_INFO
+OIL_DEBUG
+OIL_LOG
+OIL_FUNCTION
+OIL_DEBUG_PRINT
+oil_debug_set_print_function
+oil_debug_get_level
+oil_debug_set_level
+</SECTION>
+
+<SECTION>
+<FILE>liboilfunction</FILE>
+LIBOIL_CHECK_PROTOTYPE
+OIL_OPT_MANGLE
+OIL_OPT_FLAG_MANGLE
+OIL_NO_CLASSES
+OIL_OPT_SUFFIX
+<TITLE>OilFunction</TITLE>
+OilFunctionImpl
+OIL_GET
+OIL_OFFSET
+OIL_INCREMENT
+OIL_IMPL_FLAG_REF
+OIL_IMPL_FLAG_OPT
+OIL_IMPL_FLAG_ASM
+OIL_IMPL_FLAG_DISABLED
+OIL_CPU_FLAG_MASK
+OIL_IMPL_FLAG_CMOV
+OIL_IMPL_FLAG_MMX
+OIL_IMPL_FLAG_SSE
+OIL_IMPL_FLAG_MMXEXT
+OIL_IMPL_FLAG_SSE2
+OIL_IMPL_FLAG_3DNOW
+OIL_IMPL_FLAG_3DNOWEXT
+OIL_IMPL_FLAG_ALTIVEC
+OIL_DECLARE_CLASS
+OIL_DEFINE_CLASS_FULL
+OIL_DEFINE_CLASS
+OIL_DEFINE_IMPL_FULL
+OIL_DEFINE_IMPL
+OIL_DEFINE_IMPL_REF
+OIL_DEFINE_IMPL_ASM
+OIL_DEFINE_IMPL_DEPENDS
+oil_optimize_all
+oil_optimize
+oil_class_get_by_index
+oil_class_get
+oil_class_optimize
+oil_class_get_n_classes
+oil_impl_get_by_index
+oil_impl_is_runnable
+oil_class_choose_by_name
+oil_class_register_impl_by_name
+</SECTION>
+
+<SECTION>
+<FILE>liboilprofile</FILE>
+OIL_PROFILE_HIST_LENGTH
+OilProfile
+oil_profile_stamp
+oil_profile_stamp_gtod
+oil_profile_init
+oil_profile_stop_handle
+oil_profile_get_ave_std
+oil_profile_start
+oil_profile_stop
+</SECTION>
+
+<SECTION>
+<FILE>liboilprototype</FILE>
+OilPrototype
+oil_prototype_from_string
+oil_prototype_to_string
+oil_prototype_free
+oil_prototype_append_param
+oil_type_sizeof
+oil_type_name
+oil_arg_type_name
+</SECTION>
+
+<SECTION>
+<FILE>liboiltypes</FILE>
+NULL
+OilFunctionClass
+OilFunctionImpl
+OilParameter
+OilTest
+OilTestFunction
+type_s8
+type_u8
+type_s16
+type_u16
+type_s32
+type_u32
+type_f32
+type_f64
+type_min_s8
+type_min_u8
+type_min_s16
+type_min_u16
+type_min_s32
+type_min_u32
+type_max_s8
+type_max_u8
+type_max_s16
+type_max_u16
+type_max_s32
+type_max_u32
+</SECTION>
+
+<SECTION>
+<FILE>liboilparameter</FILE>
+OilType
+OilArgType
+OilParameter
+</SECTION>
+
+<SECTION>
+<FILE>liboilrandom</FILE>
+oil_rand_s32
+oil_rand_s32_l31
+oil_rand_s16
+oil_rand_s16_l15
+oil_rand_s16_l9
+oil_rand_s16_l8
+oil_rand_s16_l4
+oil_rand_s8
+oil_rand_u32
+oil_rand_u32_l31
+oil_rand_u16
+oil_rand_u8
+oil_rand_f64_0_1
+oil_rand_f64_s32
+oil_rand_f64_s16
+oil_rand_f64_s8
+oil_rand_f64_u32
+oil_rand_f64_u16
+oil_rand_f64_u8
+oil_rand_f32_0_1
+oil_rand_f32_s32
+oil_rand_f32_s16
+oil_rand_f32_s8
+oil_rand_f32_u32
+oil_rand_f32_u16
+oil_rand_f32_u8
+</SECTION>
+
+<SECTION>
+<FILE>liboiltest</FILE>
+OilTest
+OIL_TEST_HEADER
+OIL_TEST_FOOTER
+oil_test_new
+oil_test_free
+oil_test_set_iterations
+oil_test_check_ref
+oil_test_check_impl
+oil_test_cleanup
+oil_test_init_src_arrays
+oil_test_init_dest_arrays
+oil_test_init_params
+</SECTION>
+
+<SECTION>
+<FILE>dct</FILE>
+</SECTION>
+
+<SECTION>
+<FILE>jpeg</FILE>
+</SECTION>
+
+<SECTION>
+<FILE>simdpack</FILE>
+</SECTION>
+
+<SECTION>
+<FILE>md5</FILE>
+</SECTION>
+
+<SECTION>
+<FILE>conv</FILE>
+</SECTION>
+
diff --git a/doc/tmpl/conv.sgml b/doc/tmpl/conv.sgml
new file mode 100644
index 0000000..183635c
--- /dev/null
+++ b/doc/tmpl/conv.sgml
@@ -0,0 +1,16 @@
+<!-- ##### SECTION Title ##### -->
+conv
+
+<!-- ##### SECTION Short_Description ##### -->
+
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+
+</para>
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
diff --git a/doc/tmpl/dct.sgml b/doc/tmpl/dct.sgml
new file mode 100644
index 0000000..9f8edd2
--- /dev/null
+++ b/doc/tmpl/dct.sgml
@@ -0,0 +1,16 @@
+<!-- ##### SECTION Title ##### -->
+dct
+
+<!-- ##### SECTION Short_Description ##### -->
+
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+
+</para>
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
diff --git a/doc/tmpl/jpeg.sgml b/doc/tmpl/jpeg.sgml
new file mode 100644
index 0000000..37d8bb6
--- /dev/null
+++ b/doc/tmpl/jpeg.sgml
@@ -0,0 +1,16 @@
+<!-- ##### SECTION Title ##### -->
+jpeg
+
+<!-- ##### SECTION Short_Description ##### -->
+
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+
+</para>
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
diff --git a/doc/tmpl/liboil-unused.sgml b/doc/tmpl/liboil-unused.sgml
new file mode 100644
index 0000000..10368d8
--- /dev/null
+++ b/doc/tmpl/liboil-unused.sgml
@@ -0,0 +1,3082 @@
+<!-- ##### SECTION ./tmpl/liboilfuncs.sgml:Long_Description ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### SECTION ./tmpl/liboilfuncs.sgml:See_Also ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### SECTION ./tmpl/liboilfuncs.sgml:Short_Description ##### -->
+
+
+
+<!-- ##### SECTION ./tmpl/liboilfuncs.sgml:Title ##### -->
+liboilfuncs
+
+
+<!-- ##### USER_FUNCTION _oil_type_abs_f32_f32 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@n:
+
+<!-- ##### USER_FUNCTION _oil_type_abs_f64_f64 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@n:
+
+<!-- ##### USER_FUNCTION _oil_type_abs_u16_s16 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@n:
+
+<!-- ##### USER_FUNCTION _oil_type_abs_u32_s32 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@n:
+
+<!-- ##### USER_FUNCTION _oil_type_abs_u8_s8 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@n:
+
+<!-- ##### USER_FUNCTION _oil_type_argb_paint_u8 ##### -->
+<para>
+
+</para>
+
+@i_4xn:
+@s1_4:
+@s2_n:
+@n:
+
+<!-- ##### USER_FUNCTION _oil_type_average2_u8 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src1:
+@sstr1:
+@src2:
+@sstr2:
+@n:
+
+<!-- ##### USER_FUNCTION _oil_type_ayuv2argb_u8 ##### -->
+<para>
+
+</para>
+
+@d_4xn:
+@s_4xn:
+@n:
+
+<!-- ##### USER_FUNCTION _oil_type_clip_f32 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@n:
+@s2_1:
+@s3_1:
+
+<!-- ##### USER_FUNCTION _oil_type_clip_f64 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@n:
+@s2_1:
+@s3_1:
+
+<!-- ##### USER_FUNCTION _oil_type_clip_s16 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@n:
+@s2_1:
+@s3_1:
+
+<!-- ##### USER_FUNCTION _oil_type_clip_s32 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@n:
+@s2_1:
+@s3_1:
+
+<!-- ##### USER_FUNCTION _oil_type_clip_s8 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@n:
+@s2_1:
+@s3_1:
+
+<!-- ##### USER_FUNCTION _oil_type_clip_u16 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@n:
+@s2_1:
+@s3_1:
+
+<!-- ##### USER_FUNCTION _oil_type_clip_u32 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@n:
+@s2_1:
+@s3_1:
+
+<!-- ##### USER_FUNCTION _oil_type_clip_u8 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@n:
+@s2_1:
+@s3_1:
+
+<!-- ##### USER_FUNCTION _oil_type_clipconv8x8_u8_s16 ##### -->
+<para>
+
+</para>
+
+@d_8x8:
+@dstr:
+@s_8x8:
+@sstr:
+
+<!-- ##### USER_FUNCTION _oil_type_clipconv_s16_f32 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@n:
+
+<!-- ##### USER_FUNCTION _oil_type_clipconv_s16_f64 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@n:
+
+<!-- ##### USER_FUNCTION _oil_type_clipconv_s16_s32 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@n:
+
+<!-- ##### USER_FUNCTION _oil_type_clipconv_s16_u16 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@n:
+
+<!-- ##### USER_FUNCTION _oil_type_clipconv_s16_u32 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@n:
+
+<!-- ##### USER_FUNCTION _oil_type_clipconv_s32_f32 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@n:
+
+<!-- ##### USER_FUNCTION _oil_type_clipconv_s32_f64 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@n:
+
+<!-- ##### USER_FUNCTION _oil_type_clipconv_s32_u32 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@n:
+
+<!-- ##### USER_FUNCTION _oil_type_clipconv_s8_f32 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@n:
+
+<!-- ##### USER_FUNCTION _oil_type_clipconv_s8_f64 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@n:
+
+<!-- ##### USER_FUNCTION _oil_type_clipconv_s8_s16 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@n:
+
+<!-- ##### USER_FUNCTION _oil_type_clipconv_s8_s32 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@n:
+
+<!-- ##### USER_FUNCTION _oil_type_clipconv_s8_u16 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@n:
+
+<!-- ##### USER_FUNCTION _oil_type_clipconv_s8_u32 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@n:
+
+<!-- ##### USER_FUNCTION _oil_type_clipconv_s8_u8 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@n:
+
+<!-- ##### USER_FUNCTION _oil_type_clipconv_u16_f32 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@n:
+
+<!-- ##### USER_FUNCTION _oil_type_clipconv_u16_f64 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@n:
+
+<!-- ##### USER_FUNCTION _oil_type_clipconv_u16_s16 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@n:
+
+<!-- ##### USER_FUNCTION _oil_type_clipconv_u16_s32 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@n:
+
+<!-- ##### USER_FUNCTION _oil_type_clipconv_u16_u32 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@n:
+
+<!-- ##### USER_FUNCTION _oil_type_clipconv_u32_f32 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@n:
+
+<!-- ##### USER_FUNCTION _oil_type_clipconv_u32_f64 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@n:
+
+<!-- ##### USER_FUNCTION _oil_type_clipconv_u32_s32 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@n:
+
+<!-- ##### USER_FUNCTION _oil_type_clipconv_u8_f32 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@n:
+
+<!-- ##### USER_FUNCTION _oil_type_clipconv_u8_f64 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@n:
+
+<!-- ##### USER_FUNCTION _oil_type_clipconv_u8_s16 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@n:
+
+<!-- ##### USER_FUNCTION _oil_type_clipconv_u8_s32 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@n:
+
+<!-- ##### USER_FUNCTION _oil_type_clipconv_u8_s8 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@n:
+
+<!-- ##### USER_FUNCTION _oil_type_clipconv_u8_u16 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@n:
+
+<!-- ##### USER_FUNCTION _oil_type_clipconv_u8_u32 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@n:
+
+<!-- ##### USER_FUNCTION _oil_type_conv8x8_f64_s16 ##### -->
+<para>
+
+</para>
+
+@d_8x8:
+@dstr:
+@s_8x8:
+@sstr:
+
+<!-- ##### USER_FUNCTION _oil_type_conv8x8_s16_f64 ##### -->
+<para>
+
+</para>
+
+@d_8x8:
+@dstr:
+@s_8x8:
+@sstr:
+
+<!-- ##### USER_FUNCTION _oil_type_conv_f32_f64 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@n:
+
+<!-- ##### USER_FUNCTION _oil_type_conv_f32_s16 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@n:
+
+<!-- ##### USER_FUNCTION _oil_type_conv_f32_s32 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@n:
+
+<!-- ##### USER_FUNCTION _oil_type_conv_f32_s8 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@n:
+
+<!-- ##### USER_FUNCTION _oil_type_conv_f32_u16 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@n:
+
+<!-- ##### USER_FUNCTION _oil_type_conv_f32_u32 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@n:
+
+<!-- ##### USER_FUNCTION _oil_type_conv_f32_u8 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@n:
+
+<!-- ##### USER_FUNCTION _oil_type_conv_f64_f32 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@n:
+
+<!-- ##### USER_FUNCTION _oil_type_conv_f64_s16 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@n:
+
+<!-- ##### USER_FUNCTION _oil_type_conv_f64_s32 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@n:
+
+<!-- ##### USER_FUNCTION _oil_type_conv_f64_s8 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@n:
+
+<!-- ##### USER_FUNCTION _oil_type_conv_f64_u16 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@n:
+
+<!-- ##### USER_FUNCTION _oil_type_conv_f64_u32 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@n:
+
+<!-- ##### USER_FUNCTION _oil_type_conv_f64_u8 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@n:
+
+<!-- ##### USER_FUNCTION _oil_type_conv_s16_f32 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@n:
+
+<!-- ##### USER_FUNCTION _oil_type_conv_s16_f64 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@n:
+
+<!-- ##### USER_FUNCTION _oil_type_conv_s16_s32 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@n:
+
+<!-- ##### USER_FUNCTION _oil_type_conv_s16_s8 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@n:
+
+<!-- ##### USER_FUNCTION _oil_type_conv_s16_u16 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@n:
+
+<!-- ##### USER_FUNCTION _oil_type_conv_s16_u32 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@n:
+
+<!-- ##### USER_FUNCTION _oil_type_conv_s16_u8 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@n:
+
+<!-- ##### USER_FUNCTION _oil_type_conv_s32_f32 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@n:
+
+<!-- ##### USER_FUNCTION _oil_type_conv_s32_f64 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@n:
+
+<!-- ##### USER_FUNCTION _oil_type_conv_s32_s16 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@n:
+
+<!-- ##### USER_FUNCTION _oil_type_conv_s32_s8 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@n:
+
+<!-- ##### USER_FUNCTION _oil_type_conv_s32_u16 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@n:
+
+<!-- ##### USER_FUNCTION _oil_type_conv_s32_u32 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@n:
+
+<!-- ##### USER_FUNCTION _oil_type_conv_s32_u8 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@n:
+
+<!-- ##### USER_FUNCTION _oil_type_conv_s8_f32 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@n:
+
+<!-- ##### USER_FUNCTION _oil_type_conv_s8_f64 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@n:
+
+<!-- ##### USER_FUNCTION _oil_type_conv_s8_s16 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@n:
+
+<!-- ##### USER_FUNCTION _oil_type_conv_s8_s32 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@n:
+
+<!-- ##### USER_FUNCTION _oil_type_conv_s8_u16 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@n:
+
+<!-- ##### USER_FUNCTION _oil_type_conv_s8_u32 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@n:
+
+<!-- ##### USER_FUNCTION _oil_type_conv_s8_u8 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@n:
+
+<!-- ##### USER_FUNCTION _oil_type_conv_u16_f32 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@n:
+
+<!-- ##### USER_FUNCTION _oil_type_conv_u16_f64 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@n:
+
+<!-- ##### USER_FUNCTION _oil_type_conv_u16_s16 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@n:
+
+<!-- ##### USER_FUNCTION _oil_type_conv_u16_s32 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@n:
+
+<!-- ##### USER_FUNCTION _oil_type_conv_u16_s8 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@n:
+
+<!-- ##### USER_FUNCTION _oil_type_conv_u16_u32 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@n:
+
+<!-- ##### USER_FUNCTION _oil_type_conv_u16_u8 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@n:
+
+<!-- ##### USER_FUNCTION _oil_type_conv_u32_f32 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@n:
+
+<!-- ##### USER_FUNCTION _oil_type_conv_u32_f64 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@n:
+
+<!-- ##### USER_FUNCTION _oil_type_conv_u32_s16 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@n:
+
+<!-- ##### USER_FUNCTION _oil_type_conv_u32_s32 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@n:
+
+<!-- ##### USER_FUNCTION _oil_type_conv_u32_s8 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@n:
+
+<!-- ##### USER_FUNCTION _oil_type_conv_u32_u16 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@n:
+
+<!-- ##### USER_FUNCTION _oil_type_conv_u32_u8 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@n:
+
+<!-- ##### USER_FUNCTION _oil_type_conv_u8_f32 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@n:
+
+<!-- ##### USER_FUNCTION _oil_type_conv_u8_f64 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@n:
+
+<!-- ##### USER_FUNCTION _oil_type_conv_u8_s16 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@n:
+
+<!-- ##### USER_FUNCTION _oil_type_conv_u8_s32 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@n:
+
+<!-- ##### USER_FUNCTION _oil_type_conv_u8_s8 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@n:
+
+<!-- ##### USER_FUNCTION _oil_type_conv_u8_u16 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@n:
+
+<!-- ##### USER_FUNCTION _oil_type_conv_u8_u32 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@n:
+
+<!-- ##### USER_FUNCTION _oil_type_copy_u8 ##### -->
+<para>
+
+</para>
+
+@dest:
+@src:
+@n:
+
+<!-- ##### USER_FUNCTION _oil_type_dct36_f32 ##### -->
+<para>
+
+</para>
+
+@d_36:
+@dstr:
+@s_36:
+@sstr:
+
+<!-- ##### USER_FUNCTION _oil_type_dequantize8x8_s16 ##### -->
+<para>
+
+</para>
+
+@d_8x8:
+@dstr:
+@s1_8x8:
+@sstr1:
+@s2_8x8:
+@sstr2:
+
+<!-- ##### USER_FUNCTION _oil_type_diffsquaresum_f64 ##### -->
+<para>
+
+</para>
+
+@d_1:
+@src1:
+@sstr1:
+@src2:
+@sstr2:
+@n:
+
+<!-- ##### USER_FUNCTION _oil_type_fdct8_f64 ##### -->
+<para>
+
+</para>
+
+@d_8:
+@s_8:
+@dstr:
+@sstr:
+
+<!-- ##### USER_FUNCTION _oil_type_fdct8x8_f64 ##### -->
+<para>
+
+</para>
+
+@d_8x8:
+@dstr:
+@s_8x8:
+@sstr:
+
+<!-- ##### USER_FUNCTION _oil_type_fdct8x8s_s16 ##### -->
+<para>
+
+</para>
+
+@d_8x8:
+@ds:
+@s_8x8:
+@ss:
+
+<!-- ##### USER_FUNCTION _oil_type_idct8_f64 ##### -->
+<para>
+
+</para>
+
+@d_8:
+@dstr:
+@s_8:
+@sstr:
+
+<!-- ##### USER_FUNCTION _oil_type_idct8x8_f64 ##### -->
+<para>
+
+</para>
+
+@d_8x8:
+@dstr:
+@s_8x8:
+@sstr:
+
+<!-- ##### USER_FUNCTION _oil_type_idct8x8_s16 ##### -->
+<para>
+
+</para>
+
+@d_8x8:
+@dstr:
+@s_8x8:
+@sstr:
+
+<!-- ##### USER_FUNCTION _oil_type_imdct12_f64 ##### -->
+<para>
+
+</para>
+
+@d_12:
+@s_6:
+
+<!-- ##### USER_FUNCTION _oil_type_imdct32_f32 ##### -->
+<para>
+
+</para>
+
+@d_32:
+@s_32:
+
+<!-- ##### USER_FUNCTION _oil_type_imdct36_f64 ##### -->
+<para>
+
+</para>
+
+@d_36:
+@s_18:
+
+<!-- ##### USER_FUNCTION _oil_type_md5 ##### -->
+<para>
+
+</para>
+
+@i_4:
+@s_16:
+
+<!-- ##### USER_FUNCTION _oil_type_mdct12_f64 ##### -->
+<para>
+
+</para>
+
+@d_6:
+@s_12:
+
+<!-- ##### USER_FUNCTION _oil_type_mdct36_f64 ##### -->
+<para>
+
+</para>
+
+@d_18:
+@s_36:
+
+<!-- ##### USER_FUNCTION _oil_type_mix_u8 ##### -->
+<para>
+
+</para>
+
+@dest:
+@src1:
+@src2:
+@src3:
+@n:
+
+<!-- ##### USER_FUNCTION _oil_type_mult8x8_s16 ##### -->
+<para>
+
+</para>
+
+@d_8x8:
+@s1_8x8:
+@s2_8x8:
+@ds:
+@ss1:
+@ss2:
+
+<!-- ##### USER_FUNCTION _oil_type_multsum_f32 ##### -->
+<para>
+
+</para>
+
+@dest:
+@src1:
+@sstr1:
+@src2:
+@sstr2:
+@n:
+
+<!-- ##### USER_FUNCTION _oil_type_multsum_f64 ##### -->
+<para>
+
+</para>
+
+@dest:
+@src1:
+@sstr1:
+@src2:
+@sstr2:
+@n:
+
+<!-- ##### USER_FUNCTION _oil_type_null ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### USER_FUNCTION _oil_type_permute_f32 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src1:
+@sstr1:
+@src2:
+@sstr2:
+@n:
+
+<!-- ##### USER_FUNCTION _oil_type_permute_f64 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src1:
+@sstr1:
+@src2:
+@sstr2:
+@n:
+
+<!-- ##### USER_FUNCTION _oil_type_permute_s16 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src1:
+@sstr1:
+@src2:
+@sstr2:
+@n:
+
+<!-- ##### USER_FUNCTION _oil_type_permute_s32 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src1:
+@sstr1:
+@src2:
+@sstr2:
+@n:
+
+<!-- ##### USER_FUNCTION _oil_type_permute_s8 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src1:
+@sstr1:
+@src2:
+@sstr2:
+@n:
+
+<!-- ##### USER_FUNCTION _oil_type_permute_u16 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src1:
+@sstr1:
+@src2:
+@sstr2:
+@n:
+
+<!-- ##### USER_FUNCTION _oil_type_permute_u32 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src1:
+@sstr1:
+@src2:
+@sstr2:
+@n:
+
+<!-- ##### USER_FUNCTION _oil_type_permute_u8 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src1:
+@sstr1:
+@src2:
+@sstr2:
+@n:
+
+<!-- ##### USER_FUNCTION _oil_type_rgb2bgr ##### -->
+<para>
+
+</para>
+
+@d_3xn:
+@s_3xn:
+@n:
+
+<!-- ##### USER_FUNCTION _oil_type_rgb2rgba ##### -->
+<para>
+
+</para>
+
+@d_4xn:
+@s_3xn:
+@n:
+
+<!-- ##### USER_FUNCTION _oil_type_sad8x8_f64 ##### -->
+<para>
+
+</para>
+
+@d_8x8:
+@ds:
+@s1_8x8:
+@ss1:
+@s2_8x8:
+@ss2:
+
+<!-- ##### USER_FUNCTION _oil_type_sad8x8_s16 ##### -->
+<para>
+
+</para>
+
+@d_8x8:
+@ds:
+@s1_8x8:
+@ss1:
+@s2_8x8:
+@ss2:
+
+<!-- ##### USER_FUNCTION _oil_type_scalaradd_f32 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@s2_1:
+@n:
+
+<!-- ##### USER_FUNCTION _oil_type_scalaradd_f64 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@s2_1:
+@n:
+
+<!-- ##### USER_FUNCTION _oil_type_scalaradd_s16 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@s2_1:
+@n:
+
+<!-- ##### USER_FUNCTION _oil_type_scalaradd_s32 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@s2_1:
+@n:
+
+<!-- ##### USER_FUNCTION _oil_type_scalaradd_s8 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@s2_1:
+@n:
+
+<!-- ##### USER_FUNCTION _oil_type_scalaradd_u16 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@s2_1:
+@n:
+
+<!-- ##### USER_FUNCTION _oil_type_scalaradd_u32 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@s2_1:
+@n:
+
+<!-- ##### USER_FUNCTION _oil_type_scalaradd_u8 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@s2_1:
+@n:
+
+<!-- ##### USER_FUNCTION _oil_type_scalarmult_f32 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@s2_1:
+@n:
+
+<!-- ##### USER_FUNCTION _oil_type_scalarmult_f64 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@s2_1:
+@n:
+
+<!-- ##### USER_FUNCTION _oil_type_scalarmult_s16 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@s2_1:
+@n:
+
+<!-- ##### USER_FUNCTION _oil_type_scalarmult_s32 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@s2_1:
+@n:
+
+<!-- ##### USER_FUNCTION _oil_type_scalarmult_s8 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@s2_1:
+@n:
+
+<!-- ##### USER_FUNCTION _oil_type_scalarmult_u16 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@s2_1:
+@n:
+
+<!-- ##### USER_FUNCTION _oil_type_scalarmult_u32 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@s2_1:
+@n:
+
+<!-- ##### USER_FUNCTION _oil_type_scalarmult_u8 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@s2_1:
+@n:
+
+<!-- ##### USER_FUNCTION _oil_type_scanlinescale2_u8 ##### -->
+<para>
+
+</para>
+
+@dest:
+@src:
+@n:
+
+<!-- ##### USER_FUNCTION _oil_type_sincos_f64 ##### -->
+<para>
+
+</para>
+
+@dest1:
+@dest2:
+@n:
+@s1_1:
+@s2_1:
+
+<!-- ##### USER_FUNCTION _oil_type_splat_u32 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@s1_1:
+@n:
+
+<!-- ##### USER_FUNCTION _oil_type_splat_u8 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@s1_1:
+@n:
+
+<!-- ##### USER_FUNCTION _oil_type_squaresum_f64 ##### -->
+<para>
+
+</para>
+
+@dest:
+@src:
+@n:
+
+<!-- ##### USER_FUNCTION _oil_type_sum_f64 ##### -->
+<para>
+
+</para>
+
+@dest:
+@src:
+@sstr:
+@n:
+
+<!-- ##### USER_FUNCTION _oil_type_tablelookup_u8 ##### -->
+<para>
+
+</para>
+
+@d:
+@ds:
+@s1:
+@ss1:
+@s2_256:
+@ss2:
+@n:
+
+<!-- ##### USER_FUNCTION _oil_type_trans8x8_f64 ##### -->
+<para>
+
+</para>
+
+@d_8x8:
+@ds:
+@s_8x8:
+@ss:
+
+<!-- ##### USER_FUNCTION _oil_type_trans8x8_u16 ##### -->
+<para>
+
+</para>
+
+@d_8x8:
+@ds:
+@s_8x8:
+@ss:
+
+<!-- ##### USER_FUNCTION _oil_type_trans8x8_u32 ##### -->
+<para>
+
+</para>
+
+@d_8x8:
+@ds:
+@s_8x8:
+@ss:
+
+<!-- ##### USER_FUNCTION _oil_type_trans8x8_u8 ##### -->
+<para>
+
+</para>
+
+@d_8x8:
+@ds:
+@s_8x8:
+@ss:
+
+<!-- ##### USER_FUNCTION _oil_type_unzigzag8x8_s16 ##### -->
+<para>
+
+</para>
+
+@d_8x8:
+@ds:
+@s_8x8:
+@ss:
+
+<!-- ##### USER_FUNCTION _oil_type_vectoradd_f32 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src1:
+@sstr1:
+@src2:
+@sstr2:
+@n:
+@s3_1:
+@s4_1:
+
+<!-- ##### USER_FUNCTION _oil_type_vectoradd_f64 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src1:
+@sstr1:
+@src2:
+@sstr2:
+@n:
+@s3_1:
+@s4_1:
+
+<!-- ##### USER_FUNCTION _oil_type_vectoradd_s16 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src1:
+@sstr1:
+@src2:
+@sstr2:
+@n:
+@s3_1:
+@s4_1:
+
+<!-- ##### USER_FUNCTION _oil_type_vectoradd_s32 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src1:
+@sstr1:
+@src2:
+@sstr2:
+@n:
+@s3_1:
+@s4_1:
+
+<!-- ##### USER_FUNCTION _oil_type_vectoradd_s8 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src1:
+@sstr1:
+@src2:
+@sstr2:
+@n:
+@s3_1:
+@s4_1:
+
+<!-- ##### USER_FUNCTION _oil_type_vectoradd_u16 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src1:
+@sstr1:
+@src2:
+@sstr2:
+@n:
+@s3_1:
+@s4_1:
+
+<!-- ##### USER_FUNCTION _oil_type_vectoradd_u32 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src1:
+@sstr1:
+@src2:
+@sstr2:
+@n:
+@s3_1:
+@s4_1:
+
+<!-- ##### USER_FUNCTION _oil_type_vectoradd_u8 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src1:
+@sstr1:
+@src2:
+@sstr2:
+@n:
+@s3_1:
+@s4_1:
+
+<!-- ##### USER_FUNCTION _oil_type_yuv2rgbx_sub2_u8 ##### -->
+<para>
+
+</para>
+
+@d_4xn:
+@src1:
+@src2:
+@src3:
+@n:
+
+<!-- ##### USER_FUNCTION _oil_type_yuv2rgbx_sub4_u8 ##### -->
+<para>
+
+</para>
+
+@d_4xn:
+@src1:
+@src2:
+@src3:
+@n:
+
+<!-- ##### USER_FUNCTION _oil_type_yuv2rgbx_u8 ##### -->
+<para>
+
+</para>
+
+@d_4xn:
+@src1:
+@src2:
+@src3:
+@n:
+
+<!-- ##### USER_FUNCTION _oil_type_zigzag8x8_s16 ##### -->
+<para>
+
+</para>
+
+@d_8x8:
+@ds:
+@s_8x8:
+@ss:
+
+<!-- ##### VARIABLE oil_function_class_ptr_abs_f32_f32 ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE oil_function_class_ptr_abs_f64_f64 ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE oil_function_class_ptr_abs_u16_s16 ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE oil_function_class_ptr_abs_u32_s32 ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE oil_function_class_ptr_abs_u8_s8 ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE oil_function_class_ptr_argb_paint_u8 ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE oil_function_class_ptr_average2_u8 ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE oil_function_class_ptr_ayuv2argb_u8 ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE oil_function_class_ptr_clip_f32 ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE oil_function_class_ptr_clip_f64 ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE oil_function_class_ptr_clip_s16 ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE oil_function_class_ptr_clip_s32 ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE oil_function_class_ptr_clip_s8 ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE oil_function_class_ptr_clip_u16 ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE oil_function_class_ptr_clip_u32 ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE oil_function_class_ptr_clip_u8 ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE oil_function_class_ptr_clipconv8x8_u8_s16 ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE oil_function_class_ptr_clipconv_s16_f32 ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE oil_function_class_ptr_clipconv_s16_f64 ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE oil_function_class_ptr_clipconv_s16_s32 ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE oil_function_class_ptr_clipconv_s16_u16 ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE oil_function_class_ptr_clipconv_s16_u32 ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE oil_function_class_ptr_clipconv_s32_f32 ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE oil_function_class_ptr_clipconv_s32_f64 ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE oil_function_class_ptr_clipconv_s32_u32 ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE oil_function_class_ptr_clipconv_s8_f32 ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE oil_function_class_ptr_clipconv_s8_f64 ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE oil_function_class_ptr_clipconv_s8_s16 ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE oil_function_class_ptr_clipconv_s8_s32 ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE oil_function_class_ptr_clipconv_s8_u16 ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE oil_function_class_ptr_clipconv_s8_u32 ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE oil_function_class_ptr_clipconv_s8_u8 ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE oil_function_class_ptr_clipconv_u16_f32 ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE oil_function_class_ptr_clipconv_u16_f64 ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE oil_function_class_ptr_clipconv_u16_s16 ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE oil_function_class_ptr_clipconv_u16_s32 ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE oil_function_class_ptr_clipconv_u16_u32 ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE oil_function_class_ptr_clipconv_u32_f32 ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE oil_function_class_ptr_clipconv_u32_f64 ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE oil_function_class_ptr_clipconv_u32_s32 ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE oil_function_class_ptr_clipconv_u8_f32 ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE oil_function_class_ptr_clipconv_u8_f64 ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE oil_function_class_ptr_clipconv_u8_s16 ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE oil_function_class_ptr_clipconv_u8_s32 ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE oil_function_class_ptr_clipconv_u8_s8 ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE oil_function_class_ptr_clipconv_u8_u16 ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE oil_function_class_ptr_clipconv_u8_u32 ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE oil_function_class_ptr_conv8x8_f64_s16 ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE oil_function_class_ptr_conv8x8_s16_f64 ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE oil_function_class_ptr_conv_f32_f64 ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE oil_function_class_ptr_conv_f32_s16 ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE oil_function_class_ptr_conv_f32_s32 ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE oil_function_class_ptr_conv_f32_s8 ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE oil_function_class_ptr_conv_f32_u16 ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE oil_function_class_ptr_conv_f32_u32 ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE oil_function_class_ptr_conv_f32_u8 ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE oil_function_class_ptr_conv_f64_f32 ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE oil_function_class_ptr_conv_f64_s16 ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE oil_function_class_ptr_conv_f64_s32 ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE oil_function_class_ptr_conv_f64_s8 ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE oil_function_class_ptr_conv_f64_u16 ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE oil_function_class_ptr_conv_f64_u32 ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE oil_function_class_ptr_conv_f64_u8 ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE oil_function_class_ptr_conv_s16_f32 ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE oil_function_class_ptr_conv_s16_f64 ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE oil_function_class_ptr_conv_s16_s32 ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE oil_function_class_ptr_conv_s16_s8 ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE oil_function_class_ptr_conv_s16_u16 ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE oil_function_class_ptr_conv_s16_u32 ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE oil_function_class_ptr_conv_s16_u8 ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE oil_function_class_ptr_conv_s32_f32 ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE oil_function_class_ptr_conv_s32_f64 ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE oil_function_class_ptr_conv_s32_s16 ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE oil_function_class_ptr_conv_s32_s8 ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE oil_function_class_ptr_conv_s32_u16 ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE oil_function_class_ptr_conv_s32_u32 ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE oil_function_class_ptr_conv_s32_u8 ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE oil_function_class_ptr_conv_s8_f32 ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE oil_function_class_ptr_conv_s8_f64 ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE oil_function_class_ptr_conv_s8_s16 ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE oil_function_class_ptr_conv_s8_s32 ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE oil_function_class_ptr_conv_s8_u16 ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE oil_function_class_ptr_conv_s8_u32 ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE oil_function_class_ptr_conv_s8_u8 ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE oil_function_class_ptr_conv_u16_f32 ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE oil_function_class_ptr_conv_u16_f64 ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE oil_function_class_ptr_conv_u16_s16 ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE oil_function_class_ptr_conv_u16_s32 ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE oil_function_class_ptr_conv_u16_s8 ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE oil_function_class_ptr_conv_u16_u32 ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE oil_function_class_ptr_conv_u16_u8 ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE oil_function_class_ptr_conv_u32_f32 ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE oil_function_class_ptr_conv_u32_f64 ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE oil_function_class_ptr_conv_u32_s16 ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE oil_function_class_ptr_conv_u32_s32 ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE oil_function_class_ptr_conv_u32_s8 ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE oil_function_class_ptr_conv_u32_u16 ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE oil_function_class_ptr_conv_u32_u8 ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE oil_function_class_ptr_conv_u8_f32 ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE oil_function_class_ptr_conv_u8_f64 ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE oil_function_class_ptr_conv_u8_s16 ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE oil_function_class_ptr_conv_u8_s32 ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE oil_function_class_ptr_conv_u8_s8 ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE oil_function_class_ptr_conv_u8_u16 ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE oil_function_class_ptr_conv_u8_u32 ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE oil_function_class_ptr_copy_u8 ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE oil_function_class_ptr_dct36_f32 ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE oil_function_class_ptr_dequantize8x8_s16 ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE oil_function_class_ptr_diffsquaresum_f64 ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE oil_function_class_ptr_fdct8_f64 ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE oil_function_class_ptr_fdct8x8_f64 ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE oil_function_class_ptr_fdct8x8s_s16 ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE oil_function_class_ptr_idct8_f64 ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE oil_function_class_ptr_idct8x8_f64 ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE oil_function_class_ptr_idct8x8_s16 ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE oil_function_class_ptr_imdct12_f64 ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE oil_function_class_ptr_imdct32_f32 ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE oil_function_class_ptr_imdct36_f64 ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE oil_function_class_ptr_md5 ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE oil_function_class_ptr_mdct12_f64 ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE oil_function_class_ptr_mdct36_f64 ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE oil_function_class_ptr_mix_u8 ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE oil_function_class_ptr_mult8x8_s16 ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE oil_function_class_ptr_multsum_f32 ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE oil_function_class_ptr_multsum_f64 ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE oil_function_class_ptr_null ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE oil_function_class_ptr_permute_f32 ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE oil_function_class_ptr_permute_f64 ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE oil_function_class_ptr_permute_s16 ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE oil_function_class_ptr_permute_s32 ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE oil_function_class_ptr_permute_s8 ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE oil_function_class_ptr_permute_u16 ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE oil_function_class_ptr_permute_u32 ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE oil_function_class_ptr_permute_u8 ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE oil_function_class_ptr_rgb2bgr ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE oil_function_class_ptr_rgb2rgba ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE oil_function_class_ptr_sad8x8_f64 ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE oil_function_class_ptr_sad8x8_s16 ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE oil_function_class_ptr_scalaradd_f32 ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE oil_function_class_ptr_scalaradd_f64 ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE oil_function_class_ptr_scalaradd_s16 ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE oil_function_class_ptr_scalaradd_s32 ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE oil_function_class_ptr_scalaradd_s8 ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE oil_function_class_ptr_scalaradd_u16 ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE oil_function_class_ptr_scalaradd_u32 ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE oil_function_class_ptr_scalaradd_u8 ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE oil_function_class_ptr_scalarmult_f32 ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE oil_function_class_ptr_scalarmult_f64 ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE oil_function_class_ptr_scalarmult_s16 ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE oil_function_class_ptr_scalarmult_s32 ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE oil_function_class_ptr_scalarmult_s8 ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE oil_function_class_ptr_scalarmult_u16 ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE oil_function_class_ptr_scalarmult_u32 ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE oil_function_class_ptr_scalarmult_u8 ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE oil_function_class_ptr_scanlinescale2_u8 ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE oil_function_class_ptr_sincos_f64 ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE oil_function_class_ptr_splat_u32 ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE oil_function_class_ptr_splat_u8 ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE oil_function_class_ptr_squaresum_f64 ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE oil_function_class_ptr_sum_f64 ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE oil_function_class_ptr_tablelookup_u8 ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE oil_function_class_ptr_trans8x8_f64 ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE oil_function_class_ptr_trans8x8_u16 ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE oil_function_class_ptr_trans8x8_u32 ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE oil_function_class_ptr_trans8x8_u8 ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE oil_function_class_ptr_unzigzag8x8_s16 ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE oil_function_class_ptr_vectoradd_f32 ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE oil_function_class_ptr_vectoradd_f64 ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE oil_function_class_ptr_vectoradd_s16 ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE oil_function_class_ptr_vectoradd_s32 ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE oil_function_class_ptr_vectoradd_s8 ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE oil_function_class_ptr_vectoradd_u16 ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE oil_function_class_ptr_vectoradd_u32 ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE oil_function_class_ptr_vectoradd_u8 ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE oil_function_class_ptr_yuv2rgbx_sub2_u8 ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE oil_function_class_ptr_yuv2rgbx_sub4_u8 ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE oil_function_class_ptr_yuv2rgbx_u8 ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE oil_function_class_ptr_zigzag8x8_s16 ##### -->
+<para>
+
+</para>
+
+
diff --git a/doc/tmpl/liboil.sgml b/doc/tmpl/liboil.sgml
new file mode 100644
index 0000000..ee3c32b
--- /dev/null
+++ b/doc/tmpl/liboil.sgml
@@ -0,0 +1,33 @@
+<!-- ##### SECTION Title ##### -->
+liboil
+
+<!-- ##### SECTION Short_Description ##### -->
+Miscellaneous functions
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+
+</para>
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+<!-- ##### FUNCTION oil_init ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO oil_memcpy ##### -->
+<para>
+Copies data from a source location to destination. Similar to memcpy().
+</para>
+
+@dest: pointer to destination memory
+@src: pointer to source memory
+@n_bytes: number of bytes to copy
+
+
diff --git a/doc/tmpl/liboilcpu.sgml b/doc/tmpl/liboilcpu.sgml
new file mode 100644
index 0000000..24a362e
--- /dev/null
+++ b/doc/tmpl/liboilcpu.sgml
@@ -0,0 +1,24 @@
+<!-- ##### SECTION Title ##### -->
+liboilcpu
+
+<!-- ##### SECTION Short_Description ##### -->
+
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+
+</para>
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+<!-- ##### FUNCTION oil_cpu_get_flags ##### -->
+<para>
+
+</para>
+
+@Returns:
+
+
diff --git a/doc/tmpl/liboildebug.sgml b/doc/tmpl/liboildebug.sgml
new file mode 100644
index 0000000..d3ed8cf
--- /dev/null
+++ b/doc/tmpl/liboildebug.sgml
@@ -0,0 +1,121 @@
+<!-- ##### SECTION Title ##### -->
+liboildebug
+
+<!-- ##### SECTION Short_Description ##### -->
+
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+
+</para>
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+<!-- ##### USER_FUNCTION OilDebugPrintFunc ##### -->
+<para>
+
+</para>
+
+@level:
+@file:
+@func:
+@line:
+@format:
+@varargs:
+
+
+<!-- ##### ENUM OilDebugLevel ##### -->
+<para>
+
+</para>
+
+@OIL_DEBUG_NONE:
+@OIL_DEBUG_ERROR:
+@OIL_DEBUG_WARNING:
+@OIL_DEBUG_INFO:
+@OIL_DEBUG_DEBUG:
+@OIL_DEBUG_LOG:
+
+<!-- ##### MACRO OIL_ERROR ##### -->
+<para>
+
+</para>
+
+@...:
+
+
+<!-- ##### MACRO OIL_WARNING ##### -->
+<para>
+
+</para>
+
+@...:
+
+
+<!-- ##### MACRO OIL_INFO ##### -->
+<para>
+
+</para>
+
+@...:
+
+
+<!-- ##### MACRO OIL_DEBUG ##### -->
+<para>
+
+</para>
+
+@...:
+
+
+<!-- ##### MACRO OIL_LOG ##### -->
+<para>
+
+</para>
+
+@...:
+
+
+<!-- ##### MACRO OIL_FUNCTION ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO OIL_DEBUG_PRINT ##### -->
+<para>
+
+</para>
+
+@level:
+@...:
+
+
+<!-- ##### FUNCTION oil_debug_set_print_function ##### -->
+<para>
+
+</para>
+
+@func:
+
+
+<!-- ##### FUNCTION oil_debug_get_level ##### -->
+<para>
+
+</para>
+
+@Returns:
+
+
+<!-- ##### FUNCTION oil_debug_set_level ##### -->
+<para>
+
+</para>
+
+@level:
+
+
diff --git a/doc/tmpl/liboilfuncs-doc.sgml b/doc/tmpl/liboilfuncs-doc.sgml
new file mode 100644
index 0000000..a2932ab
--- /dev/null
+++ b/doc/tmpl/liboilfuncs-doc.sgml
@@ -0,0 +1,2235 @@
+<!-- ##### SECTION Title ##### -->
+Function Classes
+
+<!-- ##### SECTION Short_Description ##### -->
+Function Classes
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+Functions operate on arrays of data. The arrays can be either source
+arrays (input only), destination arrays (output only), or in-place
+arrays (both input and output).
+</para>
+
+<para>
+The interpretation of a parameter can usually be determined from its
+name. Parameters for arrays are of the form d1_1xn, where the first
+character represents the direction (source, destination, or in-place),
+the second represents the index for that particular direction, and
+the characters after the underscore indicate the size of the array.
+In this case, "1xn" represents an array that is 1 by N. Note that
+the index and the size can both be omitted, giving a default of 1
+for the index and 1xn for the size.
+</para>
+
+<para>
+Parameters that represent strides are of the form "d1s". The
+interpretation is similar to above, except that the s indicates
+a stride parameter.
+</para>
+
+<para>
+The exceptions to the above rule are "dest", "src", "dstr", "sstr", etc.
+These are aliases for "d1", "s1", "d1s", and "s1s", respectively. This
+form is deprecated and will be removed in the 0.4 series.
+</para>
+
+<para>
+Two special parameters are "n" and "m", which determine the size of
+the arrays in other parameters.
+</para>
+
+<para>
+Data arrays are laid out such that rows are separated by the number
+of bytes given by the corresponding stride. Elements in each row
+are contiguous. If there is no stride parameter corresponding to an
+array, the rows of the array are contiguous.
+</para>
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+<!-- ##### FUNCTION oil_abs_f32_f32 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@n:
+
+Calculates the absolute value of each element.
+
+<!-- ##### FUNCTION oil_abs_f64_f64 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@n:
+
+Calculates the absolute value of each element.
+
+<!-- ##### FUNCTION oil_abs_u16_s16 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@n:
+
+Calculates the absolute value of each element.
+
+<!-- ##### FUNCTION oil_abs_u32_s32 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@n:
+
+Calculates the absolute value of each element.
+
+<!-- ##### FUNCTION oil_abs_u8_s8 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@n:
+
+Calculates the absolute value of each element.
+
+<!-- ##### FUNCTION oil_argb_paint_u8 ##### -->
+<para>
+
+</para>
+
+@i_4xn:
+@s1_4:
+@s2_n:
+@n:
+
+
+<!-- ##### FUNCTION oil_average2_u8 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src1:
+@sstr1:
+@src2:
+@sstr2:
+@n:
+
+Calculates the average of each element in the source arrays.
+
+<!-- ##### FUNCTION oil_ayuv2argb_u8 ##### -->
+<para>
+
+</para>
+
+@d_4xn:
+@s_4xn:
+@n:
+
+Converts an array of AYUV pixels to ARGB.
+
+<!-- ##### FUNCTION oil_clip_f32 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@n:
+@s2_1: minumum
+@s3_1: maximum
+
+Clips each element in the first source array.
+
+<!-- ##### FUNCTION oil_clip_f64 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@n:
+@s2_1: minumum
+@s3_1: maximum
+
+Clips each element in the first source array.
+
+<!-- ##### FUNCTION oil_clip_s16 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@n:
+@s2_1: minumum
+@s3_1: maximum
+
+Clips each element in the first source array.
+
+<!-- ##### FUNCTION oil_clip_s32 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@n:
+@s2_1:
+@s3_1:
+
+
+<!-- ##### FUNCTION oil_clip_s8 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@n:
+@s2_1:
+@s3_1:
+
+
+<!-- ##### FUNCTION oil_clip_u16 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@n:
+@s2_1:
+@s3_1:
+
+
+<!-- ##### FUNCTION oil_clip_u32 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@n:
+@s2_1:
+@s3_1:
+
+
+<!-- ##### FUNCTION oil_clip_u8 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@n:
+@s2_1:
+@s3_1:
+
+
+<!-- ##### FUNCTION oil_clipconv8x8_u8_s16 ##### -->
+<para>
+
+</para>
+
+@d_8x8:
+@dstr:
+@s_8x8:
+@sstr:
+
+
+<!-- ##### FUNCTION oil_clipconv_s16_f32 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@n:
+
+
+<!-- ##### FUNCTION oil_clipconv_s16_f64 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@n:
+
+
+<!-- ##### FUNCTION oil_clipconv_s16_s32 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@n:
+
+
+<!-- ##### FUNCTION oil_clipconv_s16_u16 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@n:
+
+
+<!-- ##### FUNCTION oil_clipconv_s16_u32 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@n:
+
+
+<!-- ##### FUNCTION oil_clipconv_s32_f32 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@n:
+
+
+<!-- ##### FUNCTION oil_clipconv_s32_f64 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@n:
+
+
+<!-- ##### FUNCTION oil_clipconv_s32_u32 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@n:
+
+
+<!-- ##### FUNCTION oil_clipconv_s8_f32 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@n:
+
+
+<!-- ##### FUNCTION oil_clipconv_s8_f64 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@n:
+
+
+<!-- ##### FUNCTION oil_clipconv_s8_s16 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@n:
+
+
+<!-- ##### FUNCTION oil_clipconv_s8_s32 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@n:
+
+
+<!-- ##### FUNCTION oil_clipconv_s8_u16 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@n:
+
+
+<!-- ##### FUNCTION oil_clipconv_s8_u32 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@n:
+
+
+<!-- ##### FUNCTION oil_clipconv_s8_u8 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@n:
+
+
+<!-- ##### FUNCTION oil_clipconv_u16_f32 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@n:
+
+
+<!-- ##### FUNCTION oil_clipconv_u16_f64 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@n:
+
+
+<!-- ##### FUNCTION oil_clipconv_u16_s16 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@n:
+
+
+<!-- ##### FUNCTION oil_clipconv_u16_s32 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@n:
+
+
+<!-- ##### FUNCTION oil_clipconv_u16_u32 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@n:
+
+
+<!-- ##### FUNCTION oil_clipconv_u32_f32 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@n:
+
+
+<!-- ##### FUNCTION oil_clipconv_u32_f64 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@n:
+
+
+<!-- ##### FUNCTION oil_clipconv_u32_s32 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@n:
+
+
+<!-- ##### FUNCTION oil_clipconv_u8_f32 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@n:
+
+
+<!-- ##### FUNCTION oil_clipconv_u8_f64 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@n:
+
+
+<!-- ##### FUNCTION oil_clipconv_u8_s16 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@n:
+
+
+<!-- ##### FUNCTION oil_clipconv_u8_s32 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@n:
+
+
+<!-- ##### FUNCTION oil_clipconv_u8_s8 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@n:
+
+
+<!-- ##### FUNCTION oil_clipconv_u8_u16 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@n:
+
+
+<!-- ##### FUNCTION oil_clipconv_u8_u32 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@n:
+
+
+<!-- ##### FUNCTION oil_conv8x8_f64_s16 ##### -->
+<para>
+
+</para>
+
+@d_8x8:
+@dstr:
+@s_8x8:
+@sstr:
+
+
+<!-- ##### FUNCTION oil_conv8x8_s16_f64 ##### -->
+<para>
+
+</para>
+
+@d_8x8:
+@dstr:
+@s_8x8:
+@sstr:
+
+
+<!-- ##### FUNCTION oil_conv_f32_f64 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@n:
+
+
+<!-- ##### FUNCTION oil_conv_f32_s16 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@n:
+
+
+<!-- ##### FUNCTION oil_conv_f32_s32 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@n:
+
+
+<!-- ##### FUNCTION oil_conv_f32_s8 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@n:
+
+
+<!-- ##### FUNCTION oil_conv_f32_u16 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@n:
+
+
+<!-- ##### FUNCTION oil_conv_f32_u32 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@n:
+
+
+<!-- ##### FUNCTION oil_conv_f32_u8 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@n:
+
+
+<!-- ##### FUNCTION oil_conv_f64_f32 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@n:
+
+
+<!-- ##### FUNCTION oil_conv_f64_s16 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@n:
+
+
+<!-- ##### FUNCTION oil_conv_f64_s32 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@n:
+
+
+<!-- ##### FUNCTION oil_conv_f64_s8 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@n:
+
+
+<!-- ##### FUNCTION oil_conv_f64_u16 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@n:
+
+
+<!-- ##### FUNCTION oil_conv_f64_u32 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@n:
+
+
+<!-- ##### FUNCTION oil_conv_f64_u8 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@n:
+
+
+<!-- ##### FUNCTION oil_conv_s16_f32 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@n:
+
+
+<!-- ##### FUNCTION oil_conv_s16_f64 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@n:
+
+
+<!-- ##### FUNCTION oil_conv_s16_s32 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@n:
+
+
+<!-- ##### FUNCTION oil_conv_s16_s8 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@n:
+
+
+<!-- ##### FUNCTION oil_conv_s16_u16 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@n:
+
+
+<!-- ##### FUNCTION oil_conv_s16_u32 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@n:
+
+
+<!-- ##### FUNCTION oil_conv_s16_u8 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@n:
+
+
+<!-- ##### FUNCTION oil_conv_s32_f32 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@n:
+
+
+<!-- ##### FUNCTION oil_conv_s32_f64 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@n:
+
+
+<!-- ##### FUNCTION oil_conv_s32_s16 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@n:
+
+
+<!-- ##### FUNCTION oil_conv_s32_s8 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@n:
+
+
+<!-- ##### FUNCTION oil_conv_s32_u16 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@n:
+
+
+<!-- ##### FUNCTION oil_conv_s32_u32 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@n:
+
+
+<!-- ##### FUNCTION oil_conv_s32_u8 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@n:
+
+
+<!-- ##### FUNCTION oil_conv_s8_f32 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@n:
+
+
+<!-- ##### FUNCTION oil_conv_s8_f64 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@n:
+
+
+<!-- ##### FUNCTION oil_conv_s8_s16 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@n:
+
+
+<!-- ##### FUNCTION oil_conv_s8_s32 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@n:
+
+
+<!-- ##### FUNCTION oil_conv_s8_u16 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@n:
+
+
+<!-- ##### FUNCTION oil_conv_s8_u32 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@n:
+
+
+<!-- ##### FUNCTION oil_conv_s8_u8 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@n:
+
+
+<!-- ##### FUNCTION oil_conv_u16_f32 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@n:
+
+
+<!-- ##### FUNCTION oil_conv_u16_f64 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@n:
+
+
+<!-- ##### FUNCTION oil_conv_u16_s16 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@n:
+
+
+<!-- ##### FUNCTION oil_conv_u16_s32 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@n:
+
+
+<!-- ##### FUNCTION oil_conv_u16_s8 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@n:
+
+
+<!-- ##### FUNCTION oil_conv_u16_u32 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@n:
+
+
+<!-- ##### FUNCTION oil_conv_u16_u8 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@n:
+
+
+<!-- ##### FUNCTION oil_conv_u32_f32 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@n:
+
+
+<!-- ##### FUNCTION oil_conv_u32_f64 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@n:
+
+
+<!-- ##### FUNCTION oil_conv_u32_s16 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@n:
+
+
+<!-- ##### FUNCTION oil_conv_u32_s32 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@n:
+
+
+<!-- ##### FUNCTION oil_conv_u32_s8 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@n:
+
+
+<!-- ##### FUNCTION oil_conv_u32_u16 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@n:
+
+
+<!-- ##### FUNCTION oil_conv_u32_u8 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@n:
+
+
+<!-- ##### FUNCTION oil_conv_u8_f32 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@n:
+
+
+<!-- ##### FUNCTION oil_conv_u8_f64 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@n:
+
+
+<!-- ##### FUNCTION oil_conv_u8_s16 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@n:
+
+
+<!-- ##### FUNCTION oil_conv_u8_s32 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@n:
+
+
+<!-- ##### FUNCTION oil_conv_u8_s8 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@n:
+
+
+<!-- ##### FUNCTION oil_conv_u8_u16 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@n:
+
+
+<!-- ##### FUNCTION oil_conv_u8_u32 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@n:
+
+
+<!-- ##### FUNCTION oil_copy_u8 ##### -->
+<para>
+
+</para>
+
+@dest:
+@src:
+@n:
+
+
+<!-- ##### FUNCTION oil_dct36_f32 ##### -->
+<para>
+
+</para>
+
+@d_36:
+@dstr:
+@s_36:
+@sstr:
+
+
+<!-- ##### FUNCTION oil_dequantize8x8_s16 ##### -->
+<para>
+
+</para>
+
+@d_8x8:
+@dstr:
+@s1_8x8:
+@sstr1:
+@s2_8x8:
+@sstr2:
+
+
+<!-- ##### FUNCTION oil_diffsquaresum_f64 ##### -->
+<para>
+
+</para>
+
+@d_1:
+@src1:
+@sstr1:
+@src2:
+@sstr2:
+@n:
+
+
+<!-- ##### FUNCTION oil_fdct8_f64 ##### -->
+<para>
+
+</para>
+
+@d_8:
+@s_8:
+@dstr:
+@sstr:
+
+
+<!-- ##### FUNCTION oil_fdct8x8_f64 ##### -->
+<para>
+
+</para>
+
+@d_8x8:
+@dstr:
+@s_8x8:
+@sstr:
+
+
+<!-- ##### FUNCTION oil_fdct8x8s_s16 ##### -->
+<para>
+
+</para>
+
+@d_8x8:
+@ds:
+@s_8x8:
+@ss:
+
+
+<!-- ##### FUNCTION oil_idct8_f64 ##### -->
+<para>
+
+</para>
+
+@d_8:
+@dstr:
+@s_8:
+@sstr:
+
+
+<!-- ##### FUNCTION oil_idct8x8_f64 ##### -->
+<para>
+
+</para>
+
+@d_8x8:
+@dstr:
+@s_8x8:
+@sstr:
+
+
+<!-- ##### FUNCTION oil_idct8x8_s16 ##### -->
+<para>
+
+</para>
+
+@d_8x8:
+@dstr:
+@s_8x8:
+@sstr:
+
+
+<!-- ##### FUNCTION oil_imdct12_f64 ##### -->
+<para>
+
+</para>
+
+@d_12:
+@s_6:
+
+
+<!-- ##### FUNCTION oil_imdct32_f32 ##### -->
+<para>
+
+</para>
+
+@d_32:
+@s_32:
+
+
+<!-- ##### FUNCTION oil_imdct36_f64 ##### -->
+<para>
+
+</para>
+
+@d_36:
+@s_18:
+
+
+<!-- ##### FUNCTION oil_md5 ##### -->
+<para>
+
+</para>
+
+@i_4:
+@s_16:
+
+
+<!-- ##### FUNCTION oil_mdct12_f64 ##### -->
+<para>
+
+</para>
+
+@d_6:
+@s_12:
+
+
+<!-- ##### FUNCTION oil_mdct36_f64 ##### -->
+<para>
+
+</para>
+
+@d_18:
+@s_36:
+
+
+<!-- ##### FUNCTION oil_mix_u8 ##### -->
+<para>
+
+</para>
+
+@dest:
+@src1:
+@src2:
+@src3:
+@n:
+
+
+<!-- ##### FUNCTION oil_mult8x8_s16 ##### -->
+<para>
+
+</para>
+
+@d_8x8:
+@s1_8x8:
+@s2_8x8:
+@ds:
+@ss1:
+@ss2:
+
+
+<!-- ##### FUNCTION oil_multsum_f32 ##### -->
+<para>
+
+</para>
+
+@dest:
+@src1:
+@sstr1:
+@src2:
+@sstr2:
+@n:
+
+
+<!-- ##### FUNCTION oil_multsum_f64 ##### -->
+<para>
+
+</para>
+
+@dest:
+@src1:
+@sstr1:
+@src2:
+@sstr2:
+@n:
+
+
+<!-- ##### FUNCTION oil_null ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION oil_permute_f32 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src1:
+@sstr1:
+@src2:
+@sstr2:
+@n:
+
+
+<!-- ##### FUNCTION oil_permute_f64 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src1:
+@sstr1:
+@src2:
+@sstr2:
+@n:
+
+
+<!-- ##### FUNCTION oil_permute_s16 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src1:
+@sstr1:
+@src2:
+@sstr2:
+@n:
+
+
+<!-- ##### FUNCTION oil_permute_s32 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src1:
+@sstr1:
+@src2:
+@sstr2:
+@n:
+
+
+<!-- ##### FUNCTION oil_permute_s8 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src1:
+@sstr1:
+@src2:
+@sstr2:
+@n:
+
+
+<!-- ##### FUNCTION oil_permute_u16 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src1:
+@sstr1:
+@src2:
+@sstr2:
+@n:
+
+
+<!-- ##### FUNCTION oil_permute_u32 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src1:
+@sstr1:
+@src2:
+@sstr2:
+@n:
+
+
+<!-- ##### FUNCTION oil_permute_u8 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src1:
+@sstr1:
+@src2:
+@sstr2:
+@n:
+
+
+<!-- ##### FUNCTION oil_rgb2bgr ##### -->
+<para>
+
+</para>
+
+@d_3xn:
+@s_3xn:
+@n:
+
+
+<!-- ##### FUNCTION oil_rgb2rgba ##### -->
+<para>
+
+</para>
+
+@d_4xn:
+@s_3xn:
+@n:
+
+
+<!-- ##### FUNCTION oil_sad8x8_f64 ##### -->
+<para>
+
+</para>
+
+@d_8x8:
+@ds:
+@s1_8x8:
+@ss1:
+@s2_8x8:
+@ss2:
+
+
+<!-- ##### FUNCTION oil_sad8x8_s16 ##### -->
+<para>
+
+</para>
+
+@d_8x8:
+@ds:
+@s1_8x8:
+@ss1:
+@s2_8x8:
+@ss2:
+
+
+<!-- ##### FUNCTION oil_scalaradd_f32 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@s2_1:
+@n:
+
+
+<!-- ##### FUNCTION oil_scalaradd_f64 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@s2_1:
+@n:
+
+
+<!-- ##### FUNCTION oil_scalaradd_s16 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@s2_1:
+@n:
+
+
+<!-- ##### FUNCTION oil_scalaradd_s32 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@s2_1:
+@n:
+
+
+<!-- ##### FUNCTION oil_scalaradd_s8 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@s2_1:
+@n:
+
+
+<!-- ##### FUNCTION oil_scalaradd_u16 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@s2_1:
+@n:
+
+
+<!-- ##### FUNCTION oil_scalaradd_u32 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@s2_1:
+@n:
+
+
+<!-- ##### FUNCTION oil_scalaradd_u8 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@s2_1:
+@n:
+
+
+<!-- ##### FUNCTION oil_scalarmult_f32 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@s2_1:
+@n:
+
+
+<!-- ##### FUNCTION oil_scalarmult_f64 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@s2_1:
+@n:
+
+
+<!-- ##### FUNCTION oil_scalarmult_s16 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@s2_1:
+@n:
+
+
+<!-- ##### FUNCTION oil_scalarmult_s32 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@s2_1:
+@n:
+
+
+<!-- ##### FUNCTION oil_scalarmult_s8 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@s2_1:
+@n:
+
+
+<!-- ##### FUNCTION oil_scalarmult_u16 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@s2_1:
+@n:
+
+
+<!-- ##### FUNCTION oil_scalarmult_u32 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@s2_1:
+@n:
+
+
+<!-- ##### FUNCTION oil_scalarmult_u8 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src:
+@sstr:
+@s2_1:
+@n:
+
+
+<!-- ##### FUNCTION oil_scanlinescale2_u8 ##### -->
+<para>
+
+</para>
+
+@dest:
+@src:
+@n:
+
+
+<!-- ##### FUNCTION oil_sincos_f64 ##### -->
+<para>
+
+</para>
+
+@dest1:
+@dest2:
+@n:
+@s1_1:
+@s2_1:
+
+
+<!-- ##### FUNCTION oil_splat_u32 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@s1_1:
+@n:
+
+
+<!-- ##### FUNCTION oil_splat_u8 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@s1_1:
+@n:
+
+
+<!-- ##### FUNCTION oil_squaresum_f64 ##### -->
+<para>
+
+</para>
+
+@dest:
+@src:
+@n:
+
+
+<!-- ##### FUNCTION oil_sum_f64 ##### -->
+<para>
+
+</para>
+
+@dest:
+@src:
+@sstr:
+@n:
+
+
+<!-- ##### FUNCTION oil_tablelookup_u8 ##### -->
+<para>
+
+</para>
+
+@d:
+@ds:
+@s1:
+@ss1:
+@s2_256:
+@ss2:
+@n:
+
+
+<!-- ##### FUNCTION oil_trans8x8_f64 ##### -->
+<para>
+
+</para>
+
+@d_8x8:
+@ds:
+@s_8x8:
+@ss:
+
+
+<!-- ##### FUNCTION oil_trans8x8_u16 ##### -->
+<para>
+
+</para>
+
+@d_8x8:
+@ds:
+@s_8x8:
+@ss:
+
+
+<!-- ##### FUNCTION oil_trans8x8_u32 ##### -->
+<para>
+
+</para>
+
+@d_8x8:
+@ds:
+@s_8x8:
+@ss:
+
+
+<!-- ##### FUNCTION oil_trans8x8_u8 ##### -->
+<para>
+
+</para>
+
+@d_8x8:
+@ds:
+@s_8x8:
+@ss:
+
+
+<!-- ##### FUNCTION oil_unzigzag8x8_s16 ##### -->
+<para>
+
+</para>
+
+@d_8x8:
+@ds:
+@s_8x8:
+@ss:
+
+
+<!-- ##### FUNCTION oil_vectoradd_f32 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src1:
+@sstr1:
+@src2:
+@sstr2:
+@n:
+@s3_1:
+@s4_1:
+
+
+<!-- ##### FUNCTION oil_vectoradd_f64 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src1:
+@sstr1:
+@src2:
+@sstr2:
+@n:
+@s3_1:
+@s4_1:
+
+
+<!-- ##### FUNCTION oil_vectoradd_s16 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src1:
+@sstr1:
+@src2:
+@sstr2:
+@n:
+@s3_1:
+@s4_1:
+
+
+<!-- ##### FUNCTION oil_vectoradd_s32 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src1:
+@sstr1:
+@src2:
+@sstr2:
+@n:
+@s3_1:
+@s4_1:
+
+
+<!-- ##### FUNCTION oil_vectoradd_s8 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src1:
+@sstr1:
+@src2:
+@sstr2:
+@n:
+@s3_1:
+@s4_1:
+
+
+<!-- ##### FUNCTION oil_vectoradd_u16 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src1:
+@sstr1:
+@src2:
+@sstr2:
+@n:
+@s3_1:
+@s4_1:
+
+
+<!-- ##### FUNCTION oil_vectoradd_u32 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src1:
+@sstr1:
+@src2:
+@sstr2:
+@n:
+@s3_1:
+@s4_1:
+
+
+<!-- ##### FUNCTION oil_vectoradd_u8 ##### -->
+<para>
+
+</para>
+
+@dest:
+@dstr:
+@src1:
+@sstr1:
+@src2:
+@sstr2:
+@n:
+@s3_1:
+@s4_1:
+
+
+<!-- ##### FUNCTION oil_yuv2rgbx_sub2_u8 ##### -->
+<para>
+
+</para>
+
+@d_4xn:
+@src1:
+@src2:
+@src3:
+@n:
+
+
+<!-- ##### FUNCTION oil_yuv2rgbx_sub4_u8 ##### -->
+<para>
+
+</para>
+
+@d_4xn:
+@src1:
+@src2:
+@src3:
+@n:
+
+
+<!-- ##### FUNCTION oil_yuv2rgbx_u8 ##### -->
+<para>
+
+</para>
+
+@d_4xn:
+@src1:
+@src2:
+@src3:
+@n:
+
+
+<!-- ##### FUNCTION oil_zigzag8x8_s16 ##### -->
+<para>
+
+</para>
+
+@d_8x8:
+@ds:
+@s_8x8:
+@ss:
+
+
diff --git a/doc/tmpl/liboilfunction.sgml b/doc/tmpl/liboilfunction.sgml
new file mode 100644
index 0000000..4079734
--- /dev/null
+++ b/doc/tmpl/liboilfunction.sgml
@@ -0,0 +1,345 @@
+<!-- ##### SECTION Title ##### -->
+OilFunction
+
+<!-- ##### SECTION Short_Description ##### -->
+
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+
+</para>
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+<!-- ##### MACRO LIBOIL_CHECK_PROTOTYPE ##### -->
+<para>
+
+</para>
+
+@a:
+
+
+<!-- ##### MACRO OIL_OPT_MANGLE ##### -->
+<para>
+
+</para>
+
+@a:
+
+
+<!-- ##### MACRO OIL_OPT_FLAG_MANGLE ##### -->
+<para>
+
+</para>
+
+@a:
+
+
+<!-- ##### MACRO OIL_NO_CLASSES ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO OIL_OPT_SUFFIX ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### STRUCT OilFunctionImpl ##### -->
+<para>
+
+</para>
+
+@next:
+@klass:
+@func:
+@flags:
+@name:
+@profile_ave:
+@profile_std:
+
+<!-- ##### MACRO OIL_GET ##### -->
+<para>
+
+</para>
+
+@ptr:
+@offset:
+@type:
+
+
+<!-- ##### MACRO OIL_OFFSET ##### -->
+<para>
+
+</para>
+
+@ptr:
+@offset:
+
+
+<!-- ##### MACRO OIL_INCREMENT ##### -->
+<para>
+
+</para>
+
+@ptr:
+@offset:
+
+
+<!-- ##### MACRO OIL_IMPL_FLAG_REF ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO OIL_IMPL_FLAG_OPT ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO OIL_IMPL_FLAG_ASM ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO OIL_IMPL_FLAG_DISABLED ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO OIL_CPU_FLAG_MASK ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO OIL_IMPL_FLAG_CMOV ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO OIL_IMPL_FLAG_MMX ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO OIL_IMPL_FLAG_SSE ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO OIL_IMPL_FLAG_MMXEXT ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO OIL_IMPL_FLAG_SSE2 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO OIL_IMPL_FLAG_3DNOW ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO OIL_IMPL_FLAG_3DNOWEXT ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO OIL_IMPL_FLAG_ALTIVEC ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO OIL_DECLARE_CLASS ##### -->
+<para>
+
+</para>
+
+@klass:
+
+
+<!-- ##### MACRO OIL_DEFINE_CLASS_FULL ##### -->
+<para>
+
+</para>
+
+@klass:
+@string:
+@test:
+
+
+<!-- ##### MACRO OIL_DEFINE_CLASS ##### -->
+<para>
+
+</para>
+
+@klass:
+@string:
+
+
+<!-- ##### MACRO OIL_DEFINE_IMPL_FULL ##### -->
+<para>
+
+</para>
+
+@function:
+@klass:
+@flags:
+
+
+<!-- ##### MACRO OIL_DEFINE_IMPL ##### -->
+<para>
+
+</para>
+
+@function:
+@klass:
+
+
+<!-- ##### MACRO OIL_DEFINE_IMPL_REF ##### -->
+<para>
+
+</para>
+
+@function:
+@klass:
+
+
+<!-- ##### MACRO OIL_DEFINE_IMPL_ASM ##### -->
+<para>
+
+</para>
+
+@function:
+@klass:
+
+
+<!-- ##### MACRO OIL_DEFINE_IMPL_DEPENDS ##### -->
+<para>
+
+</para>
+
+@function:
+@klass:
+@...:
+
+
+<!-- ##### FUNCTION oil_optimize_all ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION oil_optimize ##### -->
+<para>
+
+</para>
+
+@class_name:
+
+
+<!-- ##### FUNCTION oil_class_get_by_index ##### -->
+<para>
+
+</para>
+
+@i:
+@Returns:
+
+
+<!-- ##### FUNCTION oil_class_get ##### -->
+<para>
+
+</para>
+
+@class_name:
+@Returns:
+
+
+<!-- ##### FUNCTION oil_class_optimize ##### -->
+<para>
+
+</para>
+
+@klass:
+
+
+<!-- ##### FUNCTION oil_class_get_n_classes ##### -->
+<para>
+
+</para>
+
+@Returns:
+
+
+<!-- ##### FUNCTION oil_impl_get_by_index ##### -->
+<para>
+
+</para>
+
+@i:
+@Returns:
+
+
+<!-- ##### FUNCTION oil_impl_is_runnable ##### -->
+<para>
+
+</para>
+
+@impl:
+@Returns:
+
+
+<!-- ##### FUNCTION oil_class_choose_by_name ##### -->
+<para>
+
+</para>
+
+@klass:
+@name:
+
+
+<!-- ##### FUNCTION oil_class_register_impl_by_name ##### -->
+<para>
+
+</para>
+
+@klass_name:
+@impl:
+
+
diff --git a/doc/tmpl/liboilparameter.sgml b/doc/tmpl/liboilparameter.sgml
new file mode 100644
index 0000000..49f8c9c
--- /dev/null
+++ b/doc/tmpl/liboilparameter.sgml
@@ -0,0 +1,96 @@
+<!-- ##### SECTION Title ##### -->
+liboilparameter
+
+<!-- ##### SECTION Short_Description ##### -->
+
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+
+</para>
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+<!-- ##### ENUM OilType ##### -->
+<para>
+
+</para>
+
+@OIL_TYPE_UNKNOWN:
+@OIL_TYPE_INT:
+@OIL_TYPE_s8:
+@OIL_TYPE_u8:
+@OIL_TYPE_s16:
+@OIL_TYPE_u16:
+@OIL_TYPE_s32:
+@OIL_TYPE_u32:
+@OIL_TYPE_f32:
+@OIL_TYPE_f64:
+@OIL_TYPE_s8p:
+@OIL_TYPE_u8p:
+@OIL_TYPE_s16p:
+@OIL_TYPE_u16p:
+@OIL_TYPE_s32p:
+@OIL_TYPE_u32p:
+@OIL_TYPE_f32p:
+@OIL_TYPE_f64p:
+
+<!-- ##### ENUM OilArgType ##### -->
+<para>
+
+</para>
+
+@OIL_ARG_UNKNOWN:
+@OIL_ARG_N:
+@OIL_ARG_M:
+@OIL_ARG_DEST1:
+@OIL_ARG_DSTR1:
+@OIL_ARG_DEST2:
+@OIL_ARG_DSTR2:
+@OIL_ARG_SRC1:
+@OIL_ARG_SSTR1:
+@OIL_ARG_SRC2:
+@OIL_ARG_SSTR2:
+@OIL_ARG_SRC3:
+@OIL_ARG_SSTR3:
+@OIL_ARG_SRC4:
+@OIL_ARG_SSTR4:
+@OIL_ARG_SRC5:
+@OIL_ARG_SSTR5:
+@OIL_ARG_INPLACE1:
+@OIL_ARG_ISTR1:
+@OIL_ARG_INPLACE2:
+@OIL_ARG_ISTR2:
+@OIL_ARG_LAST:
+
+<!-- ##### STRUCT OilParameter ##### -->
+<para>
+
+</para>
+
+@type_name:
+@parameter_name:
+@order:
+@type:
+@direction:
+@is_pointer:
+@is_stride:
+@index:
+@prestride_length:
+@prestride_var:
+@poststride_length:
+@poststride_var:
+@parameter_type:
+@src_data:
+@ref_data:
+@test_data:
+@value:
+@pre_n:
+@post_n:
+@stride:
+@size:
+@guard:
+
diff --git a/doc/tmpl/liboilprofile.sgml b/doc/tmpl/liboilprofile.sgml
new file mode 100644
index 0000000..e26bc40
--- /dev/null
+++ b/doc/tmpl/liboilprofile.sgml
@@ -0,0 +1,95 @@
+<!-- ##### SECTION Title ##### -->
+liboilprofile
+
+<!-- ##### SECTION Short_Description ##### -->
+
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+
+</para>
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+<!-- ##### MACRO OIL_PROFILE_HIST_LENGTH ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### STRUCT OilProfile ##### -->
+<para>
+
+</para>
+
+@start:
+@stop:
+@min:
+@last:
+@total:
+@n:
+@hist_n:
+@hist_time:
+@hist_count:
+
+<!-- ##### MACRO oil_profile_stamp ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION oil_profile_stamp_gtod ##### -->
+<para>
+
+</para>
+
+@Returns:
+
+
+<!-- ##### FUNCTION oil_profile_init ##### -->
+<para>
+
+</para>
+
+@prof:
+
+
+<!-- ##### FUNCTION oil_profile_stop_handle ##### -->
+<para>
+
+</para>
+
+@prof:
+
+
+<!-- ##### FUNCTION oil_profile_get_ave_std ##### -->
+<para>
+
+</para>
+
+@prof:
+@ave_p:
+@std_p:
+
+
+<!-- ##### MACRO oil_profile_start ##### -->
+<para>
+
+</para>
+
+@x:
+
+
+<!-- ##### MACRO oil_profile_stop ##### -->
+<para>
+
+</para>
+
+@x:
+
+
diff --git a/doc/tmpl/liboilprototype.sgml b/doc/tmpl/liboilprototype.sgml
new file mode 100644
index 0000000..83a8265
--- /dev/null
+++ b/doc/tmpl/liboilprototype.sgml
@@ -0,0 +1,87 @@
+<!-- ##### SECTION Title ##### -->
+liboilprototype
+
+<!-- ##### SECTION Short_Description ##### -->
+
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+
+</para>
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+<!-- ##### STRUCT OilPrototype ##### -->
+<para>
+
+</para>
+
+@n_params:
+@params:
+@klass:
+
+<!-- ##### FUNCTION oil_prototype_from_string ##### -->
+<para>
+
+</para>
+
+@s:
+@Returns:
+
+
+<!-- ##### FUNCTION oil_prototype_to_string ##### -->
+<para>
+
+</para>
+
+@proto:
+@Returns:
+
+
+<!-- ##### FUNCTION oil_prototype_free ##### -->
+<para>
+
+</para>
+
+@proto:
+
+
+<!-- ##### FUNCTION oil_prototype_append_param ##### -->
+<para>
+
+</para>
+
+@proto:
+@param:
+
+
+<!-- ##### FUNCTION oil_type_sizeof ##### -->
+<para>
+
+</para>
+
+@type:
+@Returns:
+
+
+<!-- ##### FUNCTION oil_type_name ##### -->
+<para>
+
+</para>
+
+@type:
+@Returns:
+
+
+<!-- ##### FUNCTION oil_arg_type_name ##### -->
+<para>
+
+</para>
+
+@type:
+@Returns:
+
+
diff --git a/doc/tmpl/liboilrandom.sgml b/doc/tmpl/liboilrandom.sgml
new file mode 100644
index 0000000..5832e35
--- /dev/null
+++ b/doc/tmpl/liboilrandom.sgml
@@ -0,0 +1,198 @@
+<!-- ##### SECTION Title ##### -->
+liboilrandom
+
+<!-- ##### SECTION Short_Description ##### -->
+
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+
+</para>
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+<!-- ##### MACRO oil_rand_s32 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO oil_rand_s32_l31 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO oil_rand_s16 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO oil_rand_s16_l15 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO oil_rand_s16_l9 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO oil_rand_s16_l8 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO oil_rand_s16_l4 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO oil_rand_s8 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO oil_rand_u32 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO oil_rand_u32_l31 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO oil_rand_u16 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO oil_rand_u8 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO oil_rand_f64_0_1 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO oil_rand_f64_s32 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO oil_rand_f64_s16 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO oil_rand_f64_s8 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO oil_rand_f64_u32 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO oil_rand_f64_u16 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO oil_rand_f64_u8 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO oil_rand_f32_0_1 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO oil_rand_f32_s32 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO oil_rand_f32_s16 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO oil_rand_f32_s8 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO oil_rand_f32_u32 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO oil_rand_f32_u16 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO oil_rand_f32_u8 ##### -->
+<para>
+
+</para>
+
+
+
diff --git a/doc/tmpl/liboiltest.sgml b/doc/tmpl/liboiltest.sgml
new file mode 100644
index 0000000..edc1de2
--- /dev/null
+++ b/doc/tmpl/liboiltest.sgml
@@ -0,0 +1,124 @@
+<!-- ##### SECTION Title ##### -->
+liboiltest
+
+<!-- ##### SECTION Short_Description ##### -->
+
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+
+</para>
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+<!-- ##### STRUCT OilTest ##### -->
+<para>
+
+</para>
+
+@klass:
+@impl:
+@proto:
+@params:
+@prof:
+@iterations:
+@n:
+@m:
+@inited:
+@tested_ref:
+@sum_abs_diff:
+@n_points:
+
+<!-- ##### MACRO OIL_TEST_HEADER ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO OIL_TEST_FOOTER ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION oil_test_new ##### -->
+<para>
+
+</para>
+
+@klass:
+@Returns:
+
+
+<!-- ##### FUNCTION oil_test_free ##### -->
+<para>
+
+</para>
+
+@test:
+
+
+<!-- ##### FUNCTION oil_test_set_iterations ##### -->
+<para>
+
+</para>
+
+@test:
+@iterations:
+
+
+<!-- ##### FUNCTION oil_test_check_ref ##### -->
+<para>
+
+</para>
+
+@test:
+
+
+<!-- ##### FUNCTION oil_test_check_impl ##### -->
+<para>
+
+</para>
+
+@test:
+@impl:
+@Returns:
+
+
+<!-- ##### FUNCTION oil_test_cleanup ##### -->
+<para>
+
+</para>
+
+@test:
+
+
+<!-- ##### FUNCTION oil_test_init_src_arrays ##### -->
+<para>
+
+</para>
+
+@test:
+
+
+<!-- ##### FUNCTION oil_test_init_dest_arrays ##### -->
+<para>
+
+</para>
+
+@test:
+
+
+<!-- ##### FUNCTION oil_test_init_params ##### -->
+<para>
+
+</para>
+
+@test:
+
+
diff --git a/doc/tmpl/liboiltypes.sgml b/doc/tmpl/liboiltypes.sgml
new file mode 100644
index 0000000..092b7a4
--- /dev/null
+++ b/doc/tmpl/liboiltypes.sgml
@@ -0,0 +1,244 @@
+<!-- ##### SECTION Title ##### -->
+liboiltypes
+
+<!-- ##### SECTION Short_Description ##### -->
+
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+
+</para>
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+<!-- ##### MACRO NULL ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### STRUCT OilFunctionClass ##### -->
+<para>
+
+</para>
+
+@func:
+@name:
+@desc:
+@test_func:
+@first_impl:
+@reference_impl:
+@chosen_impl:
+@prototype:
+
+<!-- ##### STRUCT OilFunctionImpl ##### -->
+<para>
+
+</para>
+
+@next:
+@klass:
+@func:
+@flags:
+@name:
+@profile_ave:
+@profile_std:
+
+<!-- ##### STRUCT OilParameter ##### -->
+<para>
+
+</para>
+
+@type_name:
+@parameter_name:
+@order:
+@type:
+@direction:
+@is_pointer:
+@is_stride:
+@index:
+@prestride_length:
+@prestride_var:
+@poststride_length:
+@poststride_var:
+@parameter_type:
+@src_data:
+@ref_data:
+@test_data:
+@value:
+@pre_n:
+@post_n:
+@stride:
+@size:
+@guard:
+
+<!-- ##### STRUCT OilTest ##### -->
+<para>
+
+</para>
+
+@klass:
+@impl:
+@proto:
+@params:
+@prof:
+@iterations:
+@n:
+@m:
+@inited:
+@tested_ref:
+@sum_abs_diff:
+@n_points:
+
+<!-- ##### USER_FUNCTION OilTestFunction ##### -->
+<para>
+
+</para>
+
+@test:
+
+
+<!-- ##### MACRO type_s8 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO type_u8 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO type_s16 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO type_u16 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO type_s32 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO type_u32 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO type_f32 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO type_f64 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO type_min_s8 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO type_min_u8 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO type_min_s16 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO type_min_u16 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO type_min_s32 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO type_min_u32 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO type_max_s8 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO type_max_u8 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO type_max_s16 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO type_max_u16 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO type_max_s32 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO type_max_u32 ##### -->
+<para>
+
+</para>
+
+
+
diff --git a/doc/tmpl/md5.sgml b/doc/tmpl/md5.sgml
new file mode 100644
index 0000000..a6e8584
--- /dev/null
+++ b/doc/tmpl/md5.sgml
@@ -0,0 +1,16 @@
+<!-- ##### SECTION Title ##### -->
+md5
+
+<!-- ##### SECTION Short_Description ##### -->
+
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+
+</para>
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
diff --git a/doc/tmpl/simdpack.sgml b/doc/tmpl/simdpack.sgml
new file mode 100644
index 0000000..b00a00e
--- /dev/null
+++ b/doc/tmpl/simdpack.sgml
@@ -0,0 +1,16 @@
+<!-- ##### SECTION Title ##### -->
+simdpack
+
+<!-- ##### SECTION Short_Description ##### -->
+
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+
+</para>
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+