summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Schleef <ds@schleef.org>2005-11-14 05:34:36 +0000
committerDavid Schleef <ds@schleef.org>2005-11-14 05:34:36 +0000
commit3d73c433756057ab85758c0e5ebd7ecf229763c8 (patch)
tree03f0e01a093924b2c8387f68ad1854d53c2d2cd9
parentc4ff3a7ad8f1853626408480b3c8ef392456fa28 (diff)
downloadliboil-3d73c433756057ab85758c0e5ebd7ecf229763c8.tar.gz
* doc/Makefile.am: Write a little bit of documentation.
* doc/liboil-overrides.txt: * doc/liboil-sections.txt: * doc/tmpl/liboil-unused.sgml: * doc/tmpl/liboil.sgml: * doc/tmpl/liboilfuncs-conv.sgml: * doc/tmpl/liboilfuncs-copy.sgml: * doc/tmpl/liboilfuncs-dct.sgml: * doc/tmpl/liboilfuncs-doc.sgml: * doc/tmpl/liboilfuncs-math.sgml: * doc/tmpl/liboilfuncs-math8x8.sgml: * doc/tmpl/liboilfuncs-pixel.sgml: * doc/tmpl/liboilfunction.sgml: * doc/tmpl/liboilparameter.sgml: * doc/tmpl/liboilprofile.sgml: * doc/tmpl/liboiltest.sgml: * doc/tmpl/liboiltypes.sgml: * liboil/dct/dct12_f32.c: * liboil/dct/dct36_f32.c: * liboil/dct/fdct8_f64.c: * liboil/dct/fdct8x8_f64.c: * liboil/dct/fdct8x8s_s16.c: * liboil/dct/fdct8x8theora.c: * liboil/dct/idct8_f64.c: * liboil/dct/idct8x8_c.c: * liboil/dct/idct8x8theora_ref.c: * liboil/dct/imdct32_f32.c: * liboil/jpeg/convert8x8_c.c: * liboil/jpeg/jpeg_rgb_decoder.c: * liboil/jpeg/quantize8x8_c.c: * liboil/jpeg/zigzag8x8_c.c: * liboil/liboilclasses.h: * liboil/liboilcolorspace.h: * liboil/liboilcpu.c: (oil_cpu_fault_check_enable): * liboil/liboildebug.c: * liboil/liboildebug.h: * liboil/liboilfuncs.h: * liboil/liboilfunction.c: * liboil/liboilfunction.h: * liboil/liboilparameter.h: * liboil/liboilprofile.c: * liboil/liboilprofile.h: * liboil/liboilprototype.c: (oil_prototype_to_string), (oil_prototype_from_string): * liboil/liboilprototype.h: * liboil/liboilrandom.h: * liboil/liboiltest.c: * liboil/liboiltest.h: * liboil/liboiltypes.h: * liboil/md5/md5.c: * liboil/null.c: * liboil/ref/average2_u8.c: * liboil/ref/clip_ref.c: * liboil/ref/composite.c: * liboil/ref/conv.c: * liboil/ref/copy.c: * liboil/ref/copy8x8.c: * liboil/ref/diff8x8.c: * liboil/ref/diffsquaresum_f64.c: * liboil/ref/error8x8.c: * liboil/ref/math.c: * liboil/ref/mix_u8.c: * liboil/ref/mult8x8_s16.c: * liboil/ref/multsum.c: * liboil/ref/permute.c: * liboil/ref/recon8x8.c: * liboil/ref/resample.c: * liboil/ref/rowcolsad8x8.c: * liboil/ref/sad8x8.c: * liboil/ref/sad8x8_broken.c: * liboil/ref/sad8x8avg.c: * liboil/ref/scalaradd.c: * liboil/ref/scalarmult.c: * liboil/ref/sincos_f64.c: * liboil/ref/splat.c: * liboil/ref/squaresum_f64.c: * liboil/ref/sum_f64.c: * liboil/ref/tablelookup.c: * liboil/ref/trans8x8.c: * liboil/ref/vectoradd_f64.c: * liboil/ref/vectoradd_s.c: * liboil/utf8/utf8.c:
-rw-r--r--ChangeLog85
-rw-r--r--doc/Makefile.am2
-rw-r--r--doc/liboil-overrides.txt63
-rw-r--r--doc/liboil-sections.txt1
-rw-r--r--doc/tmpl/liboil-unused.sgml3392
-rw-r--r--doc/tmpl/liboil.sgml4
-rw-r--r--doc/tmpl/liboilfuncs-conv.sgml292
-rw-r--r--doc/tmpl/liboilfuncs-copy.sgml31
-rw-r--r--doc/tmpl/liboilfuncs-dct.sgml67
-rw-r--r--doc/tmpl/liboilfuncs-doc.sgml105
-rw-r--r--doc/tmpl/liboilfuncs-math.sgml162
-rw-r--r--doc/tmpl/liboilfuncs-math8x8.sgml11
-rw-r--r--doc/tmpl/liboilfuncs-pixel.sgml6
-rw-r--r--doc/tmpl/liboilfunction.sgml7
-rw-r--r--doc/tmpl/liboilparameter.sgml22
-rw-r--r--doc/tmpl/liboilprofile.sgml9
-rw-r--r--doc/tmpl/liboiltest.sgml12
-rw-r--r--doc/tmpl/liboiltypes.sgml56
-rw-r--r--liboil/dct/dct12_f32.c32
-rw-r--r--liboil/dct/dct36_f32.c9
-rw-r--r--liboil/dct/fdct8_f64.c10
-rw-r--r--liboil/dct/fdct8x8_f64.c10
-rw-r--r--liboil/dct/fdct8x8s_s16.c17
-rw-r--r--liboil/dct/fdct8x8theora.c13
-rw-r--r--liboil/dct/idct8_f64.c10
-rw-r--r--liboil/dct/idct8x8_c.c42
-rw-r--r--liboil/dct/idct8x8theora_ref.c20
-rw-r--r--liboil/dct/imdct32_f32.c9
-rw-r--r--liboil/jpeg/convert8x8_c.c33
-rw-r--r--liboil/jpeg/jpeg_rgb_decoder.c13
-rw-r--r--liboil/jpeg/quantize8x8_c.c14
-rw-r--r--liboil/jpeg/zigzag8x8_c.c22
-rw-r--r--liboil/liboilclasses.h6
-rw-r--r--liboil/liboilcolorspace.h106
-rw-r--r--liboil/liboilcpu.c86
-rw-r--r--liboil/liboildebug.c26
-rw-r--r--liboil/liboildebug.h51
-rw-r--r--liboil/liboilfuncs.h80
-rw-r--r--liboil/liboilfunction.c53
-rw-r--r--liboil/liboilfunction.h18
-rw-r--r--liboil/liboilparameter.h18
-rw-r--r--liboil/liboilprofile.c39
-rw-r--r--liboil/liboilprofile.h29
-rw-r--r--liboil/liboilprototype.c78
-rw-r--r--liboil/liboilprototype.h6
-rw-r--r--liboil/liboilrandom.h171
-rw-r--r--liboil/liboiltest.c67
-rw-r--r--liboil/liboiltest.h16
-rw-r--r--liboil/liboiltypes.h5
-rw-r--r--liboil/md5/md5.c16
-rw-r--r--liboil/null.c9
-rw-r--r--liboil/ref/average2_u8.c19
-rw-r--r--liboil/ref/clip_ref.c131
-rw-r--r--liboil/ref/composite.c28
-rw-r--r--liboil/ref/conv.c1588
-rw-r--r--liboil/ref/copy.c8
-rw-r--r--liboil/ref/copy8x8.c9
-rw-r--r--liboil/ref/diff8x8.c43
-rw-r--r--liboil/ref/diffsquaresum_f64.c12
-rw-r--r--liboil/ref/error8x8.c45
-rw-r--r--liboil/ref/math.c120
-rw-r--r--liboil/ref/mix_u8.c13
-rw-r--r--liboil/ref/mult8x8_s16.c12
-rw-r--r--liboil/ref/multsum.c24
-rw-r--r--liboil/ref/permute.c112
-rw-r--r--liboil/ref/recon8x8.c34
-rw-r--r--liboil/ref/resample.c23
-rw-r--r--liboil/ref/rowcolsad8x8.c24
-rw-r--r--liboil/ref/sad8x8.c33
-rw-r--r--liboil/ref/sad8x8_broken.c26
-rw-r--r--liboil/ref/sad8x8avg.c15
-rw-r--r--liboil/ref/scalaradd.c124
-rw-r--r--liboil/ref/scalarmult.c124
-rw-r--r--liboil/ref/sincos_f64.c12
-rw-r--r--liboil/ref/splat.c34
-rw-r--r--liboil/ref/squaresum_f64.c11
-rw-r--r--liboil/ref/sum_f64.c12
-rw-r--r--liboil/ref/tablelookup.c13
-rw-r--r--liboil/ref/trans8x8.c50
-rw-r--r--liboil/ref/vectoradd_f64.c169
-rw-r--r--liboil/ref/vectoradd_s.c105
-rw-r--r--liboil/utf8/utf8.c11
82 files changed, 4231 insertions, 4214 deletions
diff --git a/ChangeLog b/ChangeLog
index 200a0b7..47d69f8 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,90 @@
2005-11-13 David Schleef <ds@schleef.org>
+ * doc/Makefile.am: Write a little bit of documentation.
+ * doc/liboil-overrides.txt:
+ * doc/liboil-sections.txt:
+ * doc/tmpl/liboil-unused.sgml:
+ * doc/tmpl/liboil.sgml:
+ * doc/tmpl/liboilfuncs-conv.sgml:
+ * doc/tmpl/liboilfuncs-copy.sgml:
+ * doc/tmpl/liboilfuncs-dct.sgml:
+ * doc/tmpl/liboilfuncs-doc.sgml:
+ * doc/tmpl/liboilfuncs-math.sgml:
+ * doc/tmpl/liboilfuncs-math8x8.sgml:
+ * doc/tmpl/liboilfuncs-pixel.sgml:
+ * doc/tmpl/liboilfunction.sgml:
+ * doc/tmpl/liboilparameter.sgml:
+ * doc/tmpl/liboilprofile.sgml:
+ * doc/tmpl/liboiltest.sgml:
+ * doc/tmpl/liboiltypes.sgml:
+ * liboil/dct/dct12_f32.c:
+ * liboil/dct/dct36_f32.c:
+ * liboil/dct/fdct8_f64.c:
+ * liboil/dct/fdct8x8_f64.c:
+ * liboil/dct/fdct8x8s_s16.c:
+ * liboil/dct/fdct8x8theora.c:
+ * liboil/dct/idct8_f64.c:
+ * liboil/dct/idct8x8_c.c:
+ * liboil/dct/idct8x8theora_ref.c:
+ * liboil/dct/imdct32_f32.c:
+ * liboil/jpeg/convert8x8_c.c:
+ * liboil/jpeg/jpeg_rgb_decoder.c:
+ * liboil/jpeg/quantize8x8_c.c:
+ * liboil/jpeg/zigzag8x8_c.c:
+ * liboil/liboilclasses.h:
+ * liboil/liboilcolorspace.h:
+ * liboil/liboilcpu.c: (oil_cpu_fault_check_enable):
+ * liboil/liboildebug.c:
+ * liboil/liboildebug.h:
+ * liboil/liboilfuncs.h:
+ * liboil/liboilfunction.c:
+ * liboil/liboilfunction.h:
+ * liboil/liboilparameter.h:
+ * liboil/liboilprofile.c:
+ * liboil/liboilprofile.h:
+ * liboil/liboilprototype.c: (oil_prototype_to_string),
+ (oil_prototype_from_string):
+ * liboil/liboilprototype.h:
+ * liboil/liboilrandom.h:
+ * liboil/liboiltest.c:
+ * liboil/liboiltest.h:
+ * liboil/liboiltypes.h:
+ * liboil/md5/md5.c:
+ * liboil/null.c:
+ * liboil/ref/average2_u8.c:
+ * liboil/ref/clip_ref.c:
+ * liboil/ref/composite.c:
+ * liboil/ref/conv.c:
+ * liboil/ref/copy.c:
+ * liboil/ref/copy8x8.c:
+ * liboil/ref/diff8x8.c:
+ * liboil/ref/diffsquaresum_f64.c:
+ * liboil/ref/error8x8.c:
+ * liboil/ref/math.c:
+ * liboil/ref/mix_u8.c:
+ * liboil/ref/mult8x8_s16.c:
+ * liboil/ref/multsum.c:
+ * liboil/ref/permute.c:
+ * liboil/ref/recon8x8.c:
+ * liboil/ref/resample.c:
+ * liboil/ref/rowcolsad8x8.c:
+ * liboil/ref/sad8x8.c:
+ * liboil/ref/sad8x8_broken.c:
+ * liboil/ref/sad8x8avg.c:
+ * liboil/ref/scalaradd.c:
+ * liboil/ref/scalarmult.c:
+ * liboil/ref/sincos_f64.c:
+ * liboil/ref/splat.c:
+ * liboil/ref/squaresum_f64.c:
+ * liboil/ref/sum_f64.c:
+ * liboil/ref/tablelookup.c:
+ * liboil/ref/trans8x8.c:
+ * liboil/ref/vectoradd_f64.c:
+ * liboil/ref/vectoradd_s.c:
+ * liboil/utf8/utf8.c:
+
+2005-11-13 David Schleef <ds@schleef.org>
+
* liboil/i386/fdct8x8theora_i386.c: (fdct8x8theora_mmx):
* liboil/i386/recon8x8_i386.c: (recon8x8_intra_mmx):
Fix some asm code that accesses global variables from asm
diff --git a/doc/Makefile.am b/doc/Makefile.am
index 7cddf6d..3ab28d6 100644
--- a/doc/Makefile.am
+++ b/doc/Makefile.am
@@ -43,7 +43,7 @@ CFILE_GLOB=$(top_srcdir)/liboil/*.c
# Header files to ignore when scanning.
# e.g. IGNORE_HFILES=gtkdebug.h gtkintl.h
-IGNORE_HFILES=liboilfuncs.h fb/fbmmx.h fb/fbpict.h
+IGNORE_HFILES=liboilfuncs.h fbmmx.h fbpict.h
# Images to copy into HTML directory.
# e.g. HTML_IMAGES=$(top_srcdir)/gtk/stock-icons/stock_about_24.png
diff --git a/doc/liboil-overrides.txt b/doc/liboil-overrides.txt
index ae57b8a..7951def 100644
--- a/doc/liboil-overrides.txt
+++ b/doc/liboil-overrides.txt
@@ -1,62 +1 @@
-MmxTo
-MmxAdd
-MmxAddMul
-fbCompositeSrcAdd_8888x8888
-Store24
-fbCompositeSrc_8888x0565
-FbByteMulAdd
-fbRasterizeEdges
-FbByteMulC
-cvt0565to8888
-FbByteMul
-FbInC
-FbByteAddMul
-MmxMul
-fbIn
-fbCompositeSrc_0565x0565
-fbCompositeSolidMask_nx8x0888
-Alpha
-MmxMulAdd
-FbByteAddMul_256
-fbOver24
-fbComposeGetSolid
-fbCompositeSrc_8888x8888
-FbAdd
-fbCompositeSolidMask_nx8x8888
-MmxFrom
-FbByteAdd
-fbCompositeSolidMask_nx1xn
-fbCompositeSolidMask_nx8x0565
-FbIntDiv
-div_255
-fbAddTraps
-FbByteMulAddC
-MmxNegate
-FbOverU
-fbAddTriangles
-FbGet8
-INLINE
-FASTCALL
-fbOver
-fbCompositeSrc_8888x0888
-FbGen
-FbComposeFunctions
-MmxAlpha
-fbCompositeSrcAdd_1000x1000
-FbInU
-fbRasterizeTrapezoid
-fbCompositeSolidMask_nx8888x0565C
-fbComposeGetStart
-Blue
-fbComposite
-fbCompositeSrcAdd_8000x8000
-Green
-FbIntMult
-cvt8888to0565
-FbOverC
-fbCompositeSolidMask_nx8888x8888C
-Red
-Fetch24
-FbByteAddMulC
-FbComposeData
-fbCompositeGeneral
+NULL
diff --git a/doc/liboil-sections.txt b/doc/liboil-sections.txt
index 8c267d8..0769279 100644
--- a/doc/liboil-sections.txt
+++ b/doc/liboil-sections.txt
@@ -104,7 +104,6 @@ oil_arg_type_name
<SECTION>
<FILE>liboiltypes</FILE>
-NULL
OilFunctionClass
OilFunctionImpl
OilParameter
diff --git a/doc/tmpl/liboil-unused.sgml b/doc/tmpl/liboil-unused.sgml
index 929ce90..e69de29 100644
--- a/doc/tmpl/liboil-unused.sgml
+++ b/doc/tmpl/liboil-unused.sgml
@@ -1,3392 +0,0 @@
-<!-- ##### SECTION ./tmpl/conv.sgml:Long_Description ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### SECTION ./tmpl/conv.sgml:See_Also ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### SECTION ./tmpl/conv.sgml:Short_Description ##### -->
-
-
-
-<!-- ##### SECTION ./tmpl/conv.sgml:Title ##### -->
-conv
-
-
-<!-- ##### SECTION ./tmpl/convert.sgml:Long_Description ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### SECTION ./tmpl/convert.sgml:See_Also ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### SECTION ./tmpl/convert.sgml:Short_Description ##### -->
-
-
-
-<!-- ##### SECTION ./tmpl/convert.sgml:Title ##### -->
-convert
-
-
-<!-- ##### SECTION ./tmpl/dct.sgml:Long_Description ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### SECTION ./tmpl/dct.sgml:See_Also ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### SECTION ./tmpl/dct.sgml:Short_Description ##### -->
-
-
-
-<!-- ##### SECTION ./tmpl/dct.sgml:Title ##### -->
-dct
-
-
-<!-- ##### SECTION ./tmpl/jpeg.sgml:Long_Description ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### SECTION ./tmpl/jpeg.sgml:See_Also ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### SECTION ./tmpl/jpeg.sgml:Short_Description ##### -->
-
-
-
-<!-- ##### SECTION ./tmpl/jpeg.sgml:Title ##### -->
-jpeg
-
-
-<!-- ##### SECTION ./tmpl/liboilfuncs-macros.sgml:Long_Description ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### SECTION ./tmpl/liboilfuncs-macros.sgml:See_Also ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### SECTION ./tmpl/liboilfuncs-macros.sgml:Short_Description ##### -->
-
-
-
-<!-- ##### SECTION ./tmpl/liboilfuncs-macros.sgml:Title ##### -->
-liboilfuncs-macros
-
-
-<!-- ##### 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
-
-
-<!-- ##### SECTION ./tmpl/md5.sgml:Long_Description ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### SECTION ./tmpl/md5.sgml:See_Also ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### SECTION ./tmpl/md5.sgml:Short_Description ##### -->
-
-
-
-<!-- ##### SECTION ./tmpl/md5.sgml:Title ##### -->
-md5
-
-
-<!-- ##### SECTION ./tmpl/simdpack.sgml:Long_Description ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### SECTION ./tmpl/simdpack.sgml:See_Also ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### SECTION ./tmpl/simdpack.sgml:Short_Description ##### -->
-
-
-
-<!-- ##### SECTION ./tmpl/simdpack.sgml:Title ##### -->
-simdpack
-
-
-<!-- ##### SECTION ./tmpl/utf8.sgml:Long_Description ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### SECTION ./tmpl/utf8.sgml:See_Also ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### SECTION ./tmpl/utf8.sgml:Short_Description ##### -->
-
-
-
-<!-- ##### SECTION ./tmpl/utf8.sgml:Title ##### -->
-utf8
-
-
-<!-- ##### 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_utf8_validate ##### -->
-<para>
-
-</para>
-
-@d_1:
-@s:
-@n:
-
-<!-- ##### 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_s_f32 ##### -->
-<para>
-
-</para>
-
-@dest:
-@dstr:
-@src1:
-@sstr1:
-@src2:
-@sstr2:
-@n:
-
-<!-- ##### USER_FUNCTION _oil_type_vectoradd_s_f64 ##### -->
-<para>
-
-</para>
-
-@dest:
-@dstr:
-@src1:
-@sstr1:
-@src2:
-@sstr2:
-@n:
-
-<!-- ##### USER_FUNCTION _oil_type_vectoradd_s_s16 ##### -->
-<para>
-
-</para>
-
-@dest:
-@dstr:
-@src1:
-@sstr1:
-@src2:
-@sstr2:
-@n:
-
-<!-- ##### USER_FUNCTION _oil_type_vectoradd_s_s8 ##### -->
-<para>
-
-</para>
-
-@dest:
-@dstr:
-@src1:
-@sstr1:
-@src2:
-@sstr2:
-@n:
-
-<!-- ##### USER_FUNCTION _oil_type_vectoradd_s_u16 ##### -->
-<para>
-
-</para>
-
-@dest:
-@dstr:
-@src1:
-@sstr1:
-@src2:
-@sstr2:
-@n:
-
-<!-- ##### USER_FUNCTION _oil_type_vectoradd_s_u8 ##### -->
-<para>
-
-</para>
-
-@dest:
-@dstr:
-@src1:
-@sstr1:
-@src2:
-@sstr2:
-@n:
-
-<!-- ##### 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_utf8_validate ##### -->
-<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_s_f32 ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### VARIABLE oil_function_class_ptr_vectoradd_s_f64 ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### VARIABLE oil_function_class_ptr_vectoradd_s_s16 ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### VARIABLE oil_function_class_ptr_vectoradd_s_s8 ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### VARIABLE oil_function_class_ptr_vectoradd_s_u16 ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### VARIABLE oil_function_class_ptr_vectoradd_s_u8 ##### -->
-<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>
-
-
-<!-- ##### FUNCTION oil_test_init_dest_arrays ##### -->
-<para>
-
-</para>
-
-@test:
-
-<!-- ##### FUNCTION oil_test_init_params ##### -->
-<para>
-
-</para>
-
-@test:
-
-<!-- ##### FUNCTION oil_test_init_src_arrays ##### -->
-<para>
-
-</para>
-
-@test:
-
diff --git a/doc/tmpl/liboil.sgml b/doc/tmpl/liboil.sgml
index dd75aed..c074563 100644
--- a/doc/tmpl/liboil.sgml
+++ b/doc/tmpl/liboil.sgml
@@ -1,8 +1,8 @@
<!-- ##### SECTION Title ##### -->
-Initialization
+liboil
<!-- ##### SECTION Short_Description ##### -->
-Functions for library initialization
+
<!-- ##### SECTION Long_Description ##### -->
<para>
diff --git a/doc/tmpl/liboilfuncs-conv.sgml b/doc/tmpl/liboilfuncs-conv.sgml
index ea882ac..c2843b4 100644
--- a/doc/tmpl/liboilfuncs-conv.sgml
+++ b/doc/tmpl/liboilfuncs-conv.sgml
@@ -1,13 +1,12 @@
<!-- ##### SECTION Title ##### -->
-Type conversion
+liboilfuncs-conv
<!-- ##### SECTION Short_Description ##### -->
-Type conversion function classes
+
<!-- ##### SECTION Long_Description ##### -->
<para>
-These functions convert values in the source array from the source
-type to the destination type.
+
</para>
<!-- ##### SECTION See_Also ##### -->
@@ -21,8 +20,6 @@ type to the destination type.
<!-- ##### FUNCTION oil_clipconv8x8_u8_s16 ##### -->
<para>
-Converts source array to type of destination array, clipping values
-to the range of the destination type.
</para>
@d_8x8:
@@ -34,8 +31,6 @@ to the range of the destination type.
<!-- ##### FUNCTION oil_clipconv_s16_f32 ##### -->
<para>
-Converts source array to type of destination array, clipping values
-to the range of the destination type.
</para>
@dest:
@@ -48,8 +43,6 @@ to the range of the destination type.
<!-- ##### FUNCTION oil_clipconv_s16_f64 ##### -->
<para>
-Converts source array to type of destination array, clipping values
-to the range of the destination type.
</para>
@dest:
@@ -62,8 +55,6 @@ to the range of the destination type.
<!-- ##### FUNCTION oil_clipconv_s16_s32 ##### -->
<para>
-Converts source array to type of destination array, clipping values
-to the range of the destination type.
</para>
@dest:
@@ -76,8 +67,6 @@ to the range of the destination type.
<!-- ##### FUNCTION oil_clipconv_s16_u16 ##### -->
<para>
-Converts source array to type of destination array, clipping values
-to the range of the destination type.
</para>
@dest:
@@ -90,8 +79,6 @@ to the range of the destination type.
<!-- ##### FUNCTION oil_clipconv_s16_u32 ##### -->
<para>
-Converts source array to type of destination array, clipping values
-to the range of the destination type.
</para>
@dest:
@@ -104,8 +91,6 @@ to the range of the destination type.
<!-- ##### FUNCTION oil_clipconv_s32_f32 ##### -->
<para>
-Converts source array to type of destination array, clipping values
-to the range of the destination type.
</para>
@dest:
@@ -118,8 +103,6 @@ to the range of the destination type.
<!-- ##### FUNCTION oil_clipconv_s32_f64 ##### -->
<para>
-Converts source array to type of destination array, clipping values
-to the range of the destination type.
</para>
@dest:
@@ -132,8 +115,6 @@ to the range of the destination type.
<!-- ##### FUNCTION oil_clipconv_s32_u32 ##### -->
<para>
-Converts source array to type of destination array, clipping values
-to the range of the destination type.
</para>
@dest:
@@ -146,8 +127,6 @@ to the range of the destination type.
<!-- ##### FUNCTION oil_clipconv_s8_f32 ##### -->
<para>
-Converts source array to type of destination array, clipping values
-to the range of the destination type.
</para>
@dest:
@@ -160,8 +139,6 @@ to the range of the destination type.
<!-- ##### FUNCTION oil_clipconv_s8_f64 ##### -->
<para>
-Converts source array to type of destination array, clipping values
-to the range of the destination type.
</para>
@dest:
@@ -174,8 +151,6 @@ to the range of the destination type.
<!-- ##### FUNCTION oil_clipconv_s8_s16 ##### -->
<para>
-Converts source array to type of destination array, clipping values
-to the range of the destination type.
</para>
@dest:
@@ -188,8 +163,6 @@ to the range of the destination type.
<!-- ##### FUNCTION oil_clipconv_s8_s32 ##### -->
<para>
-Converts source array to type of destination array, clipping values
-to the range of the destination type.
</para>
@dest:
@@ -202,8 +175,6 @@ to the range of the destination type.
<!-- ##### FUNCTION oil_clipconv_s8_u16 ##### -->
<para>
-Converts source array to type of destination array, clipping values
-to the range of the destination type.
</para>
@dest:
@@ -216,8 +187,6 @@ to the range of the destination type.
<!-- ##### FUNCTION oil_clipconv_s8_u32 ##### -->
<para>
-Converts source array to type of destination array, clipping values
-to the range of the destination type.
</para>
@dest:
@@ -230,8 +199,6 @@ to the range of the destination type.
<!-- ##### FUNCTION oil_clipconv_s8_u8 ##### -->
<para>
-Converts source array to type of destination array, clipping values
-to the range of the destination type.
</para>
@dest:
@@ -244,8 +211,6 @@ to the range of the destination type.
<!-- ##### FUNCTION oil_clipconv_u16_f32 ##### -->
<para>
-Converts source array to type of destination array, clipping values
-to the range of the destination type.
</para>
@dest:
@@ -258,8 +223,6 @@ to the range of the destination type.
<!-- ##### FUNCTION oil_clipconv_u16_f64 ##### -->
<para>
-Converts source array to type of destination array, clipping values
-to the range of the destination type.
</para>
@dest:
@@ -272,8 +235,6 @@ to the range of the destination type.
<!-- ##### FUNCTION oil_clipconv_u16_s16 ##### -->
<para>
-Converts source array to type of destination array, clipping values
-to the range of the destination type.
</para>
@dest:
@@ -286,8 +247,6 @@ to the range of the destination type.
<!-- ##### FUNCTION oil_clipconv_u16_s32 ##### -->
<para>
-Converts source array to type of destination array, clipping values
-to the range of the destination type.
</para>
@dest:
@@ -300,8 +259,6 @@ to the range of the destination type.
<!-- ##### FUNCTION oil_clipconv_u16_u32 ##### -->
<para>
-Converts source array to type of destination array, clipping values
-to the range of the destination type.
</para>
@dest:
@@ -314,8 +271,6 @@ to the range of the destination type.
<!-- ##### FUNCTION oil_clipconv_u32_f32 ##### -->
<para>
-Converts source array to type of destination array, clipping values
-to the range of the destination type.
</para>
@dest:
@@ -328,8 +283,6 @@ to the range of the destination type.
<!-- ##### FUNCTION oil_clipconv_u32_f64 ##### -->
<para>
-Converts source array to type of destination array, clipping values
-to the range of the destination type.
</para>
@dest:
@@ -342,8 +295,6 @@ to the range of the destination type.
<!-- ##### FUNCTION oil_clipconv_u32_s32 ##### -->
<para>
-Converts source array to type of destination array, clipping values
-to the range of the destination type.
</para>
@dest:
@@ -356,8 +307,6 @@ to the range of the destination type.
<!-- ##### FUNCTION oil_clipconv_u8_f32 ##### -->
<para>
-Converts source array to type of destination array, clipping values
-to the range of the destination type.
</para>
@dest:
@@ -370,8 +319,6 @@ to the range of the destination type.
<!-- ##### FUNCTION oil_clipconv_u8_f64 ##### -->
<para>
-Converts source array to type of destination array, clipping values
-to the range of the destination type.
</para>
@dest:
@@ -384,8 +331,6 @@ to the range of the destination type.
<!-- ##### FUNCTION oil_clipconv_u8_s16 ##### -->
<para>
-Converts source array to type of destination array, clipping values
-to the range of the destination type.
</para>
@dest:
@@ -398,8 +343,6 @@ to the range of the destination type.
<!-- ##### FUNCTION oil_clipconv_u8_s32 ##### -->
<para>
-Converts source array to type of destination array, clipping values
-to the range of the destination type.
</para>
@dest:
@@ -412,8 +355,6 @@ to the range of the destination type.
<!-- ##### FUNCTION oil_clipconv_u8_s8 ##### -->
<para>
-Converts source array to type of destination array, clipping values
-to the range of the destination type.
</para>
@dest:
@@ -426,8 +367,6 @@ to the range of the destination type.
<!-- ##### FUNCTION oil_clipconv_u8_u16 ##### -->
<para>
-Converts source array to type of destination array, clipping values
-to the range of the destination type.
</para>
@dest:
@@ -440,9 +379,6 @@ to the range of the destination type.
<!-- ##### FUNCTION oil_clipconv_u8_u32 ##### -->
<para>
-Converts each element in the source array to the type of destination
-array. Destination values outside the range of the destination type
-are unspecified.
</para>
@dest:
@@ -455,9 +391,6 @@ are unspecified.
<!-- ##### FUNCTION oil_conv8x8_f64_s16 ##### -->
<para>
-Converts each element in the source array to the type of destination
-array. Destination values outside the range of the destination type
-are unspecified.
</para>
@d_8x8:
@@ -469,9 +402,6 @@ are unspecified.
<!-- ##### FUNCTION oil_conv8x8_s16_f64 ##### -->
<para>
-Converts each element in the source array to the type of destination
-array. Destination values outside the range of the destination type
-are unspecified.
</para>
@d_8x8:
@@ -483,9 +413,6 @@ are unspecified.
<!-- ##### FUNCTION oil_conv_f32_f64 ##### -->
<para>
-Converts each element in the source array to the type of destination
-array. Destination values outside the range of the destination type
-are unspecified.
</para>
@dest:
@@ -498,9 +425,6 @@ are unspecified.
<!-- ##### FUNCTION oil_conv_f32_s16 ##### -->
<para>
-Converts each element in the source array to the type of destination
-array. Destination values outside the range of the destination type
-are unspecified.
</para>
@dest:
@@ -513,9 +437,6 @@ are unspecified.
<!-- ##### FUNCTION oil_conv_f32_s32 ##### -->
<para>
-Converts each element in the source array to the type of destination
-array. Destination values outside the range of the destination type
-are unspecified.
</para>
@dest:
@@ -528,9 +449,6 @@ are unspecified.
<!-- ##### FUNCTION oil_conv_f32_s8 ##### -->
<para>
-Converts each element in the source array to the type of destination
-array. Destination values outside the range of the destination type
-are unspecified.
</para>
@dest:
@@ -543,9 +461,6 @@ are unspecified.
<!-- ##### FUNCTION oil_conv_f32_u16 ##### -->
<para>
-Converts each element in the source array to the type of destination
-array. Destination values outside the range of the destination type
-are unspecified.
</para>
@dest:
@@ -558,9 +473,6 @@ are unspecified.
<!-- ##### FUNCTION oil_conv_f32_u32 ##### -->
<para>
-Converts each element in the source array to the type of destination
-array. Destination values outside the range of the destination type
-are unspecified.
</para>
@dest:
@@ -573,9 +485,6 @@ are unspecified.
<!-- ##### FUNCTION oil_conv_f32_u8 ##### -->
<para>
-Converts each element in the source array to the type of destination
-array. Destination values outside the range of the destination type
-are unspecified.
</para>
@dest:
@@ -588,9 +497,6 @@ are unspecified.
<!-- ##### FUNCTION oil_conv_f64_f32 ##### -->
<para>
-Converts each element in the source array to the type of destination
-array. Destination values outside the range of the destination type
-are unspecified.
</para>
@dest:
@@ -603,9 +509,6 @@ are unspecified.
<!-- ##### FUNCTION oil_conv_f64_s16 ##### -->
<para>
-Converts each element in the source array to the type of destination
-array. Destination values outside the range of the destination type
-are unspecified.
</para>
@dest:
@@ -618,9 +521,6 @@ are unspecified.
<!-- ##### FUNCTION oil_conv_f64_s32 ##### -->
<para>
-Converts each element in the source array to the type of destination
-array. Destination values outside the range of the destination type
-are unspecified.
</para>
@dest:
@@ -633,9 +533,6 @@ are unspecified.
<!-- ##### FUNCTION oil_conv_f64_s8 ##### -->
<para>
-Converts each element in the source array to the type of destination
-array. Destination values outside the range of the destination type
-are unspecified.
</para>
@dest:
@@ -648,9 +545,6 @@ are unspecified.
<!-- ##### FUNCTION oil_conv_f64_u16 ##### -->
<para>
-Converts each element in the source array to the type of destination
-array. Destination values outside the range of the destination type
-are unspecified.
</para>
@dest:
@@ -663,9 +557,6 @@ are unspecified.
<!-- ##### FUNCTION oil_conv_f64_u32 ##### -->
<para>
-Converts each element in the source array to the type of destination
-array. Destination values outside the range of the destination type
-are unspecified.
</para>
@dest:
@@ -678,9 +569,6 @@ are unspecified.
<!-- ##### FUNCTION oil_conv_f64_u8 ##### -->
<para>
-Converts each element in the source array to the type of destination
-array. Destination values outside the range of the destination type
-are unspecified.
</para>
@dest:
@@ -693,9 +581,6 @@ are unspecified.
<!-- ##### FUNCTION oil_conv_s16_f32 ##### -->
<para>
-Converts each element in the source array to the type of destination
-array. Destination values outside the range of the destination type
-are unspecified.
</para>
@dest:
@@ -708,9 +593,6 @@ are unspecified.
<!-- ##### FUNCTION oil_conv_s16_f64 ##### -->
<para>
-Converts each element in the source array to the type of destination
-array. Destination values outside the range of the destination type
-are unspecified.
</para>
@dest:
@@ -723,9 +605,6 @@ are unspecified.
<!-- ##### FUNCTION oil_conv_s16_s32 ##### -->
<para>
-Converts each element in the source array to the type of destination
-array. Destination values outside the range of the destination type
-are unspecified.
</para>
@dest:
@@ -738,9 +617,6 @@ are unspecified.
<!-- ##### FUNCTION oil_conv_s16_s8 ##### -->
<para>
-Converts each element in the source array to the type of destination
-array. Destination values outside the range of the destination type
-are unspecified.
</para>
@dest:
@@ -753,9 +629,6 @@ are unspecified.
<!-- ##### FUNCTION oil_conv_s16_u16 ##### -->
<para>
-Converts each element in the source array to the type of destination
-array. Destination values outside the range of the destination type
-are unspecified.
</para>
@dest:
@@ -768,9 +641,6 @@ are unspecified.
<!-- ##### FUNCTION oil_conv_s16_u32 ##### -->
<para>
-Converts each element in the source array to the type of destination
-array. Destination values outside the range of the destination type
-are unspecified.
</para>
@dest:
@@ -783,9 +653,6 @@ are unspecified.
<!-- ##### FUNCTION oil_conv_s16_u8 ##### -->
<para>
-Converts each element in the source array to the type of destination
-array. Destination values outside the range of the destination type
-are unspecified.
</para>
@dest:
@@ -798,9 +665,6 @@ are unspecified.
<!-- ##### FUNCTION oil_conv_s32_f32 ##### -->
<para>
-Converts each element in the source array to the type of destination
-array. Destination values outside the range of the destination type
-are unspecified.
</para>
@dest:
@@ -813,9 +677,6 @@ are unspecified.
<!-- ##### FUNCTION oil_conv_s32_f64 ##### -->
<para>
-Converts each element in the source array to the type of destination
-array. Destination values outside the range of the destination type
-are unspecified.
</para>
@dest:
@@ -828,9 +689,6 @@ are unspecified.
<!-- ##### FUNCTION oil_conv_s32_s16 ##### -->
<para>
-Converts each element in the source array to the type of destination
-array. Destination values outside the range of the destination type
-are unspecified.
</para>
@dest:
@@ -843,9 +701,6 @@ are unspecified.
<!-- ##### FUNCTION oil_conv_s32_s8 ##### -->
<para>
-Converts each element in the source array to the type of destination
-array. Destination values outside the range of the destination type
-are unspecified.
</para>
@dest:
@@ -858,9 +713,6 @@ are unspecified.
<!-- ##### FUNCTION oil_conv_s32_u16 ##### -->
<para>
-Converts each element in the source array to the type of destination
-array. Destination values outside the range of the destination type
-are unspecified.
</para>
@dest:
@@ -873,9 +725,6 @@ are unspecified.
<!-- ##### FUNCTION oil_conv_s32_u32 ##### -->
<para>
-Converts each element in the source array to the type of destination
-array. Destination values outside the range of the destination type
-are unspecified.
</para>
@dest:
@@ -888,9 +737,6 @@ are unspecified.
<!-- ##### FUNCTION oil_conv_s32_u8 ##### -->
<para>
-Converts each element in the source array to the type of destination
-array. Destination values outside the range of the destination type
-are unspecified.
</para>
@dest:
@@ -903,9 +749,6 @@ are unspecified.
<!-- ##### FUNCTION oil_conv_s8_f32 ##### -->
<para>
-Converts each element in the source array to the type of destination
-array. Destination values outside the range of the destination type
-are unspecified.
</para>
@dest:
@@ -918,9 +761,6 @@ are unspecified.
<!-- ##### FUNCTION oil_conv_s8_f64 ##### -->
<para>
-Converts each element in the source array to the type of destination
-array. Destination values outside the range of the destination type
-are unspecified.
</para>
@dest:
@@ -933,9 +773,6 @@ are unspecified.
<!-- ##### FUNCTION oil_conv_s8_s16 ##### -->
<para>
-Converts each element in the source array to the type of destination
-array. Destination values outside the range of the destination type
-are unspecified.
</para>
@dest:
@@ -948,9 +785,6 @@ are unspecified.
<!-- ##### FUNCTION oil_conv_s8_s32 ##### -->
<para>
-Converts each element in the source array to the type of destination
-array. Destination values outside the range of the destination type
-are unspecified.
</para>
@dest:
@@ -963,9 +797,6 @@ are unspecified.
<!-- ##### FUNCTION oil_conv_s8_u16 ##### -->
<para>
-Converts each element in the source array to the type of destination
-array. Destination values outside the range of the destination type
-are unspecified.
</para>
@dest:
@@ -978,9 +809,6 @@ are unspecified.
<!-- ##### FUNCTION oil_conv_s8_u32 ##### -->
<para>
-Converts each element in the source array to the type of destination
-array. Destination values outside the range of the destination type
-are unspecified.
</para>
@dest:
@@ -993,9 +821,6 @@ are unspecified.
<!-- ##### FUNCTION oil_conv_s8_u8 ##### -->
<para>
-Converts each element in the source array to the type of destination
-array. Destination values outside the range of the destination type
-are unspecified.
</para>
@dest:
@@ -1008,9 +833,6 @@ are unspecified.
<!-- ##### FUNCTION oil_conv_u16_f32 ##### -->
<para>
-Converts each element in the source array to the type of destination
-array. Destination values outside the range of the destination type
-are unspecified.
</para>
@dest:
@@ -1023,9 +845,6 @@ are unspecified.
<!-- ##### FUNCTION oil_conv_u16_f64 ##### -->
<para>
-Converts each element in the source array to the type of destination
-array. Destination values outside the range of the destination type
-are unspecified.
</para>
@dest:
@@ -1038,9 +857,6 @@ are unspecified.
<!-- ##### FUNCTION oil_conv_u16_s16 ##### -->
<para>
-Converts each element in the source array to the type of destination
-array. Destination values outside the range of the destination type
-are unspecified.
</para>
@dest:
@@ -1053,9 +869,6 @@ are unspecified.
<!-- ##### FUNCTION oil_conv_u16_s32 ##### -->
<para>
-Converts each element in the source array to the type of destination
-array. Destination values outside the range of the destination type
-are unspecified.
</para>
@dest:
@@ -1068,9 +881,6 @@ are unspecified.
<!-- ##### FUNCTION oil_conv_u16_s8 ##### -->
<para>
-Converts each element in the source array to the type of destination
-array. Destination values outside the range of the destination type
-are unspecified.
</para>
@dest:
@@ -1083,9 +893,6 @@ are unspecified.
<!-- ##### FUNCTION oil_conv_u16_u32 ##### -->
<para>
-Converts each element in the source array to the type of destination
-array. Destination values outside the range of the destination type
-are unspecified.
</para>
@dest:
@@ -1098,9 +905,6 @@ are unspecified.
<!-- ##### FUNCTION oil_conv_u16_u8 ##### -->
<para>
-Converts each element in the source array to the type of destination
-array. Destination values outside the range of the destination type
-are unspecified.
</para>
@dest:
@@ -1113,9 +917,6 @@ are unspecified.
<!-- ##### FUNCTION oil_conv_u32_f32 ##### -->
<para>
-Converts each element in the source array to the type of destination
-array. Destination values outside the range of the destination type
-are unspecified.
</para>
@dest:
@@ -1128,9 +929,6 @@ are unspecified.
<!-- ##### FUNCTION oil_conv_u32_f64 ##### -->
<para>
-Converts each element in the source array to the type of destination
-array. Destination values outside the range of the destination type
-are unspecified.
</para>
@dest:
@@ -1143,9 +941,6 @@ are unspecified.
<!-- ##### FUNCTION oil_conv_u32_s16 ##### -->
<para>
-Converts each element in the source array to the type of destination
-array. Destination values outside the range of the destination type
-are unspecified.
</para>
@dest:
@@ -1158,9 +953,6 @@ are unspecified.
<!-- ##### FUNCTION oil_conv_u32_s32 ##### -->
<para>
-Converts each element in the source array to the type of destination
-array. Destination values outside the range of the destination type
-are unspecified.
</para>
@dest:
@@ -1173,9 +965,6 @@ are unspecified.
<!-- ##### FUNCTION oil_conv_u32_s8 ##### -->
<para>
-Converts each element in the source array to the type of destination
-array. Destination values outside the range of the destination type
-are unspecified.
</para>
@dest:
@@ -1188,9 +977,6 @@ are unspecified.
<!-- ##### FUNCTION oil_conv_u32_u16 ##### -->
<para>
-Converts each element in the source array to the type of destination
-array. Destination values outside the range of the destination type
-are unspecified.
</para>
@dest:
@@ -1203,9 +989,6 @@ are unspecified.
<!-- ##### FUNCTION oil_conv_u32_u8 ##### -->
<para>
-Converts each element in the source array to the type of destination
-array. Destination values outside the range of the destination type
-are unspecified.
</para>
@dest:
@@ -1218,9 +1001,6 @@ are unspecified.
<!-- ##### FUNCTION oil_conv_u8_f32 ##### -->
<para>
-Converts each element in the source array to the type of destination
-array. Destination values outside the range of the destination type
-are unspecified.
</para>
@dest:
@@ -1233,9 +1013,6 @@ are unspecified.
<!-- ##### FUNCTION oil_conv_u8_f64 ##### -->
<para>
-Converts each element in the source array to the type of destination
-array. Destination values outside the range of the destination type
-are unspecified.
</para>
@dest:
@@ -1248,9 +1025,6 @@ are unspecified.
<!-- ##### FUNCTION oil_conv_u8_s16 ##### -->
<para>
-Converts each element in the source array to the type of destination
-array. Destination values outside the range of the destination type
-are unspecified.
</para>
@dest:
@@ -1263,9 +1037,6 @@ are unspecified.
<!-- ##### FUNCTION oil_conv_u8_s32 ##### -->
<para>
-Converts each element in the source array to the type of destination
-array. Destination values outside the range of the destination type
-are unspecified.
</para>
@dest:
@@ -1278,9 +1049,6 @@ are unspecified.
<!-- ##### FUNCTION oil_conv_u8_s8 ##### -->
<para>
-Converts each element in the source array to the type of destination
-array. Destination values outside the range of the destination type
-are unspecified.
</para>
@dest:
@@ -1293,9 +1061,6 @@ are unspecified.
<!-- ##### FUNCTION oil_conv_u8_u16 ##### -->
<para>
-Converts each element in the source array to the type of destination
-array. Destination values outside the range of the destination type
-are unspecified.
</para>
@dest:
@@ -1308,9 +1073,6 @@ are unspecified.
<!-- ##### FUNCTION oil_conv_u8_u32 ##### -->
<para>
-Converts each element in the source array to the type of destination
-array. Destination values outside the range of the destination type
-are unspecified.
</para>
@dest:
@@ -1322,7 +1084,7 @@ are unspecified.
<!-- ##### FUNCTION oil_scaleconv_f32_s16 ##### -->
<para>
-Requires version 0.3.2
+
</para>
@dest:
@@ -1334,7 +1096,7 @@ Requires version 0.3.2
<!-- ##### FUNCTION oil_scaleconv_f32_s32 ##### -->
<para>
-Requires version 0.3.2
+
</para>
@dest:
@@ -1346,7 +1108,7 @@ Requires version 0.3.2
<!-- ##### FUNCTION oil_scaleconv_f32_s8 ##### -->
<para>
-Requires version 0.3.2
+
</para>
@dest:
@@ -1358,7 +1120,7 @@ Requires version 0.3.2
<!-- ##### FUNCTION oil_scaleconv_f32_u16 ##### -->
<para>
-Requires version 0.3.2
+
</para>
@dest:
@@ -1370,7 +1132,7 @@ Requires version 0.3.2
<!-- ##### FUNCTION oil_scaleconv_f32_u32 ##### -->
<para>
-Requires version 0.3.2
+
</para>
@dest:
@@ -1382,7 +1144,7 @@ Requires version 0.3.2
<!-- ##### FUNCTION oil_scaleconv_f32_u8 ##### -->
<para>
-Requires version 0.3.2
+
</para>
@dest:
@@ -1394,7 +1156,7 @@ Requires version 0.3.2
<!-- ##### FUNCTION oil_scaleconv_f64_s16 ##### -->
<para>
-Requires version 0.3.2
+
</para>
@dest:
@@ -1406,7 +1168,7 @@ Requires version 0.3.2
<!-- ##### FUNCTION oil_scaleconv_f64_s32 ##### -->
<para>
-Requires version 0.3.2
+
</para>
@dest:
@@ -1418,7 +1180,7 @@ Requires version 0.3.2
<!-- ##### FUNCTION oil_scaleconv_f64_s8 ##### -->
<para>
-Requires version 0.3.2
+
</para>
@dest:
@@ -1430,7 +1192,7 @@ Requires version 0.3.2
<!-- ##### FUNCTION oil_scaleconv_f64_u16 ##### -->
<para>
-Requires version 0.3.2
+
</para>
@dest:
@@ -1442,7 +1204,7 @@ Requires version 0.3.2
<!-- ##### FUNCTION oil_scaleconv_f64_u32 ##### -->
<para>
-Requires version 0.3.2
+
</para>
@dest:
@@ -1454,7 +1216,7 @@ Requires version 0.3.2
<!-- ##### FUNCTION oil_scaleconv_f64_u8 ##### -->
<para>
-Requires version 0.3.2
+
</para>
@dest:
@@ -1466,7 +1228,7 @@ Requires version 0.3.2
<!-- ##### FUNCTION oil_scaleconv_s16_f32 ##### -->
<para>
-Requires version 0.3.2
+
</para>
@dest:
@@ -1478,7 +1240,7 @@ Requires version 0.3.2
<!-- ##### FUNCTION oil_scaleconv_s16_f64 ##### -->
<para>
-Requires version 0.3.2
+
</para>
@dest:
@@ -1490,7 +1252,7 @@ Requires version 0.3.2
<!-- ##### FUNCTION oil_scaleconv_s32_f32 ##### -->
<para>
-Requires version 0.3.2
+
</para>
@dest:
@@ -1502,7 +1264,7 @@ Requires version 0.3.2
<!-- ##### FUNCTION oil_scaleconv_s32_f64 ##### -->
<para>
-Requires version 0.3.2
+
</para>
@dest:
@@ -1514,7 +1276,7 @@ Requires version 0.3.2
<!-- ##### FUNCTION oil_scaleconv_s8_f32 ##### -->
<para>
-Requires version 0.3.2
+
</para>
@dest:
@@ -1526,7 +1288,7 @@ Requires version 0.3.2
<!-- ##### FUNCTION oil_scaleconv_s8_f64 ##### -->
<para>
-Requires version 0.3.2
+
</para>
@dest:
@@ -1538,7 +1300,7 @@ Requires version 0.3.2
<!-- ##### FUNCTION oil_scaleconv_u16_f32 ##### -->
<para>
-Requires version 0.3.2
+
</para>
@dest:
@@ -1550,7 +1312,7 @@ Requires version 0.3.2
<!-- ##### FUNCTION oil_scaleconv_u16_f64 ##### -->
<para>
-Requires version 0.3.2
+
</para>
@dest:
@@ -1562,7 +1324,7 @@ Requires version 0.3.2
<!-- ##### FUNCTION oil_scaleconv_u32_f32 ##### -->
<para>
-Requires version 0.3.2
+
</para>
@dest:
@@ -1574,7 +1336,7 @@ Requires version 0.3.2
<!-- ##### FUNCTION oil_scaleconv_u32_f64 ##### -->
<para>
-Requires version 0.3.2
+
</para>
@dest:
@@ -1586,7 +1348,7 @@ Requires version 0.3.2
<!-- ##### FUNCTION oil_scaleconv_u8_f32 ##### -->
<para>
-Requires version 0.3.2
+
</para>
@dest:
@@ -1598,7 +1360,7 @@ Requires version 0.3.2
<!-- ##### FUNCTION oil_scaleconv_u8_f64 ##### -->
<para>
-Requires version 0.3.2
+
</para>
@dest:
diff --git a/doc/tmpl/liboilfuncs-copy.sgml b/doc/tmpl/liboilfuncs-copy.sgml
index 0e5b854..5b6bd9f 100644
--- a/doc/tmpl/liboilfuncs-copy.sgml
+++ b/doc/tmpl/liboilfuncs-copy.sgml
@@ -1,13 +1,12 @@
<!-- ##### SECTION Title ##### -->
-Copying
+liboilfuncs-copy
<!-- ##### SECTION Short_Description ##### -->
-Copy and rearrangement function classes
+
<!-- ##### SECTION Long_Description ##### -->
<para>
-These functions copy data from source array to destination array,
-sometimes modifying position in the array.
+
</para>
<!-- ##### SECTION See_Also ##### -->
@@ -21,8 +20,6 @@ sometimes modifying position in the array.
<!-- ##### FUNCTION oil_copy_u8 ##### -->
<para>
-Copies the source array to the destination array with no modification.
-This function is identical to memcpy().
</para>
@dest:
@@ -145,8 +142,6 @@ This function is identical to memcpy().
<!-- ##### FUNCTION oil_splat_u32 ##### -->
<para>
-Copies the value in the source array to each element in the destination
-array.
</para>
@dest:
@@ -158,8 +153,6 @@ array.
<!-- ##### FUNCTION oil_splat_u8 ##### -->
<para>
-Copies the value in the source array to each element in the destination
-array.
</para>
@dest:
@@ -185,7 +178,6 @@ array.
<!-- ##### FUNCTION oil_trans8x8_f64 ##### -->
<para>
-Transposes the source array.
</para>
@d_8x8:
@@ -197,7 +189,6 @@ Transposes the source array.
<!-- ##### FUNCTION oil_trans8x8_u16 ##### -->
<para>
-Transposes the source array.
</para>
@d_8x8:
@@ -209,7 +200,6 @@ Transposes the source array.
<!-- ##### FUNCTION oil_trans8x8_u32 ##### -->
<para>
-Transposes the source array.
</para>
@d_8x8:
@@ -221,7 +211,6 @@ Transposes the source array.
<!-- ##### FUNCTION oil_trans8x8_u8 ##### -->
<para>
-Transposes the source array.
</para>
@d_8x8:
@@ -254,7 +243,7 @@ Transposes the source array.
<!-- ##### FUNCTION oil_splat_u32_ns ##### -->
<para>
-Requires version 0.3.2
+
</para>
@dest:
@@ -264,7 +253,7 @@ Requires version 0.3.2
<!-- ##### FUNCTION oil_splat_u8_ns ##### -->
<para>
-Requires version 0.3.2
+
</para>
@dest:
@@ -274,7 +263,7 @@ Requires version 0.3.2
<!-- ##### MACRO oil_trans8x8_s16 ##### -->
<para>
-Requires version 0.3.2
+
</para>
@dest:
@@ -285,11 +274,11 @@ Requires version 0.3.2
<!-- ##### 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
+@dest:
+@src:
+@n_bytes:
diff --git a/doc/tmpl/liboilfuncs-dct.sgml b/doc/tmpl/liboilfuncs-dct.sgml
index 6a20dc7..caecb79 100644
--- a/doc/tmpl/liboilfuncs-dct.sgml
+++ b/doc/tmpl/liboilfuncs-dct.sgml
@@ -1,49 +1,12 @@
<!-- ##### SECTION Title ##### -->
-DCT
+liboilfuncs-dct
<!-- ##### SECTION Short_Description ##### -->
-Discrete Cosine Transform Related 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>
+<!-- ##### SECTION Long_Description ##### -->
<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 ##### -->
@@ -68,7 +31,6 @@ array, the rows of the array are contiguous.
<!-- ##### FUNCTION oil_fdct8_f64 ##### -->
<para>
-Calculates the forward discrete cosine transform on the source array.
</para>
@d_8:
@@ -80,7 +42,6 @@ Calculates the forward discrete cosine transform on the source array.
<!-- ##### FUNCTION oil_fdct8x8_f64 ##### -->
<para>
-Calculates the 2-D forward discrete cosine transform on the source array.
</para>
@d_8x8:
@@ -92,9 +53,6 @@ Calculates the 2-D forward discrete cosine transform on the source array.
<!-- ##### FUNCTION oil_fdct8x8s_s16 ##### -->
<para>
-Calculates the 2-D forward discrete cosine transform on the source array,
-multiplying some values in the destination array by values interesting
-to the algorithm. This function is not recommended.
</para>
@d_8x8:
@@ -106,7 +64,6 @@ to the algorithm. This function is not recommended.
<!-- ##### FUNCTION oil_idct8_f64 ##### -->
<para>
-Calculates the inverse discrete cosine transform on the source array.
</para>
@d_8:
@@ -118,7 +75,6 @@ Calculates the inverse discrete cosine transform on the source array.
<!-- ##### FUNCTION oil_idct8x8_f64 ##### -->
<para>
-Calculates the 2-D inverse discrete cosine transform on the source array.
</para>
@d_8x8:
@@ -130,9 +86,6 @@ Calculates the 2-D inverse discrete cosine transform on the source array.
<!-- ##### FUNCTION oil_idct8x8_s16 ##### -->
<para>
-Calculates the 2-D inverse discrete cosine transform on the source array,
-multiplying some values in the destination array by values interesting
-to the algorithm. This function is not recommended.
</para>
@d_8x8:
@@ -144,8 +97,6 @@ to the algorithm. This function is not recommended.
<!-- ##### FUNCTION oil_imdct12_f64 ##### -->
<para>
-Calculate the inverse modified discrete cosine transform of the source
-array. This function is interesting in mp3 decoding.
</para>
@d_12:
@@ -155,8 +106,6 @@ array. This function is interesting in mp3 decoding.
<!-- ##### FUNCTION oil_imdct32_f32 ##### -->
<para>
-Calculate the inverse modified discrete cosine transform of the source
-array. This function is interesting in mp3 decoding.
</para>
@d_32:
@@ -166,8 +115,6 @@ array. This function is interesting in mp3 decoding.
<!-- ##### FUNCTION oil_imdct36_f64 ##### -->
<para>
-Calculate the inverse modified discrete cosine transform of the source
-array. This function is interesting in mp3 decoding.
</para>
@d_36:
@@ -177,7 +124,6 @@ array. This function is interesting in mp3 decoding.
<!-- ##### FUNCTION oil_mdct12_f64 ##### -->
<para>
-Calculates the modified discrete cosine transform of the source array.
</para>
@d_6:
@@ -187,7 +133,6 @@ Calculates the modified discrete cosine transform of the source array.
<!-- ##### FUNCTION oil_mdct36_f64 ##### -->
<para>
-Calculates the modified discrete cosine transform of the source array.
</para>
@d_18:
@@ -196,7 +141,7 @@ Calculates the modified discrete cosine transform of the source array.
<!-- ##### FUNCTION oil_idct8theora_s16 ##### -->
<para>
-Requires version 0.3.2
+
</para>
@d_8:
@@ -207,7 +152,7 @@ Requires version 0.3.2
<!-- ##### FUNCTION oil_idct8x8lim10_f64 ##### -->
<para>
-Requires version 0.3.2
+
</para>
@d_8x8:
@@ -218,7 +163,7 @@ Requires version 0.3.2
<!-- ##### FUNCTION oil_idct8x8lim10_s16 ##### -->
<para>
-Requires version 0.3.2
+
</para>
@d_8x8:
@@ -229,7 +174,7 @@ Requires version 0.3.2
<!-- ##### FUNCTION oil_idct8x8theora_s16 ##### -->
<para>
-Requires version 0.3.2
+
</para>
@d_8x8:
diff --git a/doc/tmpl/liboilfuncs-doc.sgml b/doc/tmpl/liboilfuncs-doc.sgml
index 424abbb..806b8fc 100644
--- a/doc/tmpl/liboilfuncs-doc.sgml
+++ b/doc/tmpl/liboilfuncs-doc.sgml
@@ -1,49 +1,12 @@
<!-- ##### SECTION Title ##### -->
-Other Function Classes
+liboilfuncs-doc
<!-- ##### SECTION Short_Description ##### -->
-Other 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>
+<!-- ##### SECTION Long_Description ##### -->
<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 ##### -->
@@ -57,7 +20,6 @@ array, the rows of the array are contiguous.
<!-- ##### FUNCTION oil_clip_f32 ##### -->
<para>
-Clips each element in the first source array.
</para>
@dest:
@@ -65,14 +27,13 @@ Clips each element in the first source array.
@src:
@sstr:
@n:
-@s2_1: minumum
-@s3_1: maximum
+@s2_1:
+@s3_1:
<!-- ##### FUNCTION oil_clip_f64 ##### -->
<para>
-Clips each element in the first source array.
</para>
@dest:
@@ -80,14 +41,13 @@ Clips each element in the first source array.
@src:
@sstr:
@n:
-@s2_1: minumum
-@s3_1: maximum
+@s2_1:
+@s3_1:
<!-- ##### FUNCTION oil_clip_s16 ##### -->
<para>
-Clips each element in the first source array.
</para>
@dest:
@@ -95,14 +55,13 @@ Clips each element in the first source array.
@src:
@sstr:
@n:
-@s2_1: minumum
-@s3_1: maximum
+@s2_1:
+@s3_1:
<!-- ##### FUNCTION oil_clip_s32 ##### -->
<para>
-Clips each element in the first source array.
</para>
@dest:
@@ -110,14 +69,13 @@ Clips each element in the first source array.
@src:
@sstr:
@n:
-@s2_1: minimum
-@s3_1: maximum
+@s2_1:
+@s3_1:
<!-- ##### FUNCTION oil_clip_s8 ##### -->
<para>
-Clips each element in the first source array.
</para>
@dest:
@@ -125,14 +83,13 @@ Clips each element in the first source array.
@src:
@sstr:
@n:
-@s2_1: minimum
-@s3_1: maximum
+@s2_1:
+@s3_1:
<!-- ##### FUNCTION oil_clip_u16 ##### -->
<para>
-Clips each element in the first source array.
</para>
@dest:
@@ -140,14 +97,13 @@ Clips each element in the first source array.
@src:
@sstr:
@n:
-@s2_1: minimum
-@s3_1: maximum
+@s2_1:
+@s3_1:
<!-- ##### FUNCTION oil_clip_u32 ##### -->
<para>
-Clips each element in the first source array.
</para>
@dest:
@@ -155,14 +111,13 @@ Clips each element in the first source array.
@src:
@sstr:
@n:
-@s2_1: minimum
-@s3_1: maximum
+@s2_1:
+@s3_1:
<!-- ##### FUNCTION oil_clip_u8 ##### -->
<para>
-Clips each element in the first source array.
</para>
@dest:
@@ -170,16 +125,13 @@ Clips each element in the first source array.
@src:
@sstr:
@n:
-@s2_1: minimum
-@s3_1: maximum
+@s2_1:
+@s3_1:
<!-- ##### FUNCTION oil_dequantize8x8_s16 ##### -->
<para>
-Multiplies each value in first source array with corresponding value
-in second source array, and places result in destination array. This
-function would be more appropriately called oil_mult8x8_s16().
</para>
@d_8x8:
@@ -193,9 +145,6 @@ function would be more appropriately called oil_mult8x8_s16().
<!-- ##### FUNCTION oil_diffsquaresum_f64 ##### -->
<para>
-Subtracts each value in first source array with corresponding value
-in second source array, squares the result, and then sums the results
-over the entire array, placing the result in the destination.
</para>
@d_1:
@@ -209,10 +158,6 @@ over the entire array, placing the result in the destination.
<!-- ##### FUNCTION oil_md5 ##### -->
<para>
-Convolves the MD5 checksum using the given source data. The complete
-algorithm for calculating MD5 checksums requires additional preparation
-of the data. See the example in the examples/md5 directory in the
-source tree.
</para>
@i_4:
@@ -234,7 +179,6 @@ source tree.
<!-- ##### FUNCTION oil_null ##### -->
<para>
-Does nothing, and does it surprisingly fast.
</para>
@@ -244,8 +188,8 @@ Does nothing, and does it surprisingly fast.
</para>
-@dest:
-@src:
+@d:
+@s:
@n:
@@ -264,9 +208,6 @@ Does nothing, and does it surprisingly fast.
<!-- ##### FUNCTION oil_utf8_validate ##### -->
<para>
-Checks the source array for valid UTF-8 characters. Processing stops
-once an invalid character is found. The number of bytes containing
-valid UTF-8 characters is placed in the destination.
</para>
@d_1:
@@ -279,7 +220,7 @@ valid UTF-8 characters is placed in the destination.
</para>
-@d_64:
+@d_8x8:
@s1_8x8:
@ss1:
@s2_8x8:
@@ -291,7 +232,7 @@ valid UTF-8 characters is placed in the destination.
</para>
-@d_64:
+@d_8x8:
@s1_8x8:
@ss1:
@s2_8x8:
@@ -372,7 +313,7 @@ valid UTF-8 characters is placed in the destination.
</para>
-@d_64:
+@d_8x8:
@s1_8x8:
@ss1:
diff --git a/doc/tmpl/liboilfuncs-math.sgml b/doc/tmpl/liboilfuncs-math.sgml
index 38890f1..3ca912b 100644
--- a/doc/tmpl/liboilfuncs-math.sgml
+++ b/doc/tmpl/liboilfuncs-math.sgml
@@ -82,11 +82,11 @@ liboilfuncs-math
</para>
-@dest:
+@d:
@dstr:
-@src1:
+@s1:
@sstr1:
-@src2:
+@s2:
@sstr2:
@n:
@@ -122,9 +122,9 @@ liboilfuncs-math
</para>
-@dest:
+@d:
@dstr:
-@src:
+@s1:
@sstr:
@s2_1:
@n:
@@ -135,9 +135,9 @@ liboilfuncs-math
</para>
-@dest:
+@d:
@dstr:
-@src:
+@s1:
@sstr:
@s2_1:
@n:
@@ -148,9 +148,9 @@ liboilfuncs-math
</para>
-@dest:
+@d:
@dstr:
-@src:
+@s1:
@sstr:
@s2_1:
@n:
@@ -161,9 +161,9 @@ liboilfuncs-math
</para>
-@dest:
+@d:
@dstr:
-@src:
+@s1:
@sstr:
@s2_1:
@n:
@@ -174,9 +174,9 @@ liboilfuncs-math
</para>
-@dest:
+@d:
@dstr:
-@src:
+@s1:
@sstr:
@s2_1:
@n:
@@ -187,9 +187,9 @@ liboilfuncs-math
</para>
-@dest:
+@d:
@dstr:
-@src:
+@s1:
@sstr:
@s2_1:
@n:
@@ -200,9 +200,9 @@ liboilfuncs-math
</para>
-@dest:
+@d:
@dstr:
-@src:
+@s1:
@sstr:
@s2_1:
@n:
@@ -213,9 +213,9 @@ liboilfuncs-math
</para>
-@dest:
+@d:
@dstr:
-@src:
+@s1:
@sstr:
@s2_1:
@n:
@@ -226,9 +226,9 @@ liboilfuncs-math
</para>
-@dest:
+@d:
@dstr:
-@src:
+@s1:
@sstr:
@s2_1:
@n:
@@ -239,9 +239,9 @@ liboilfuncs-math
</para>
-@dest:
+@d:
@dstr:
-@src:
+@s1:
@sstr:
@s2_1:
@n:
@@ -252,9 +252,9 @@ liboilfuncs-math
</para>
-@dest:
+@d:
@dstr:
-@src:
+@s1:
@sstr:
@s2_1:
@n:
@@ -265,9 +265,9 @@ liboilfuncs-math
</para>
-@dest:
+@d:
@dstr:
-@src:
+@s1:
@sstr:
@s2_1:
@n:
@@ -278,9 +278,9 @@ liboilfuncs-math
</para>
-@dest:
+@d:
@dstr:
-@src:
+@s1:
@sstr:
@s2_1:
@n:
@@ -291,9 +291,9 @@ liboilfuncs-math
</para>
-@dest:
+@d:
@dstr:
-@src:
+@s1:
@sstr:
@s2_1:
@n:
@@ -304,9 +304,9 @@ liboilfuncs-math
</para>
-@dest:
+@d:
@dstr:
-@src:
+@s1:
@sstr:
@s2_1:
@n:
@@ -317,9 +317,9 @@ liboilfuncs-math
</para>
-@dest:
+@d:
@dstr:
-@src:
+@s1:
@sstr:
@s2_1:
@n:
@@ -330,11 +330,11 @@ liboilfuncs-math
</para>
-@dest:
+@d:
@dstr:
-@src1:
+@s1:
@sstr1:
-@src2:
+@s2:
@sstr2:
@n:
@s3_1:
@@ -346,11 +346,11 @@ liboilfuncs-math
</para>
-@dest:
+@d:
@dstr:
-@src1:
+@s1:
@sstr1:
-@src2:
+@s2:
@sstr2:
@n:
@s3_1:
@@ -362,11 +362,11 @@ liboilfuncs-math
</para>
-@dest:
+@d:
@dstr:
-@src1:
+@s1:
@sstr1:
-@src2:
+@s2:
@sstr2:
@n:
@s3_1:
@@ -378,11 +378,11 @@ liboilfuncs-math
</para>
-@dest:
+@d:
@dstr:
-@src1:
+@s1:
@sstr1:
-@src2:
+@s2:
@sstr2:
@n:
@s3_1:
@@ -394,11 +394,11 @@ liboilfuncs-math
</para>
-@dest:
+@d:
@dstr:
-@src1:
+@s1:
@sstr1:
-@src2:
+@s2:
@sstr2:
@n:
@s3_1:
@@ -410,11 +410,11 @@ liboilfuncs-math
</para>
-@dest:
+@d:
@dstr:
-@src1:
+@s1:
@sstr1:
-@src2:
+@s2:
@sstr2:
@n:
@s3_1:
@@ -426,11 +426,11 @@ liboilfuncs-math
</para>
-@dest:
+@d:
@dstr:
-@src1:
+@s1:
@sstr1:
-@src2:
+@s2:
@sstr2:
@n:
@s3_1:
@@ -442,11 +442,11 @@ liboilfuncs-math
</para>
-@dest:
+@d:
@dstr:
-@src1:
+@s1:
@sstr1:
-@src2:
+@s2:
@sstr2:
@n:
@s3_1:
@@ -458,11 +458,11 @@ liboilfuncs-math
</para>
-@dest:
+@d:
@dstr:
-@src1:
+@s1:
@sstr1:
-@src2:
+@s2:
@sstr2:
@n:
@@ -472,11 +472,11 @@ liboilfuncs-math
</para>
-@dest:
+@d:
@dstr:
-@src1:
+@s1:
@sstr1:
-@src2:
+@s2:
@sstr2:
@n:
@@ -486,11 +486,11 @@ liboilfuncs-math
</para>
-@dest:
+@d:
@dstr:
-@src1:
+@s1:
@sstr1:
-@src2:
+@s2:
@sstr2:
@n:
@@ -500,11 +500,11 @@ liboilfuncs-math
</para>
-@dest:
+@d:
@dstr:
-@src1:
+@s1:
@sstr1:
-@src2:
+@s2:
@sstr2:
@n:
@@ -514,11 +514,11 @@ liboilfuncs-math
</para>
-@dest:
+@d:
@dstr:
-@src1:
+@s1:
@sstr1:
-@src2:
+@s2:
@sstr2:
@n:
@@ -528,11 +528,11 @@ liboilfuncs-math
</para>
-@dest:
+@d:
@dstr:
-@src1:
+@s1:
@sstr1:
-@src2:
+@s2:
@sstr2:
@n:
@@ -542,8 +542,8 @@ liboilfuncs-math
</para>
-@dest:
-@src:
+@d:
+@s:
@n:
@@ -552,8 +552,8 @@ liboilfuncs-math
</para>
-@dest:
-@src:
+@d_1:
+@s:
@sstr:
@n:
diff --git a/doc/tmpl/liboilfuncs-math8x8.sgml b/doc/tmpl/liboilfuncs-math8x8.sgml
index 0e4d573..3a9bf41 100644
--- a/doc/tmpl/liboilfuncs-math8x8.sgml
+++ b/doc/tmpl/liboilfuncs-math8x8.sgml
@@ -1,11 +1,12 @@
<!-- ##### SECTION Title ##### -->
-Simple Math on 8x8 Blocks
+liboilfuncs-math8x8
<!-- ##### SECTION Short_Description ##### -->
-Arithmetic Operations on 8x8 Blocks
+
<!-- ##### SECTION Long_Description ##### -->
<para>
+
</para>
<!-- ##### SECTION See_Also ##### -->
@@ -57,7 +58,7 @@ Arithmetic Operations on 8x8 Blocks
<!-- ##### FUNCTION oil_sad8x8_f64_2 ##### -->
<para>
-Requires version 0.3.2
+
</para>
@d_1:
@@ -69,7 +70,7 @@ Requires version 0.3.2
<!-- ##### FUNCTION oil_sad8x8_s16_2 ##### -->
<para>
-Requires version 0.3.2
+
</para>
@d_1:
@@ -81,7 +82,7 @@ Requires version 0.3.2
<!-- ##### FUNCTION oil_sad8x8_u8 ##### -->
<para>
-Requires version 0.3.2
+
</para>
@d_1:
diff --git a/doc/tmpl/liboilfuncs-pixel.sgml b/doc/tmpl/liboilfuncs-pixel.sgml
index 65589e8..8363441 100644
--- a/doc/tmpl/liboilfuncs-pixel.sgml
+++ b/doc/tmpl/liboilfuncs-pixel.sgml
@@ -1,11 +1,12 @@
<!-- ##### SECTION Title ##### -->
-Pixel Operations
+liboilfuncs-pixel
<!-- ##### SECTION Short_Description ##### -->
-Pixel Operation Function Classes
+
<!-- ##### SECTION Long_Description ##### -->
<para>
+
</para>
<!-- ##### SECTION See_Also ##### -->
@@ -30,7 +31,6 @@ Pixel Operation Function Classes
<!-- ##### FUNCTION oil_ayuv2argb_u8 ##### -->
<para>
-Converts an array of AYUV pixels to ARGB.
</para>
@d_4xn:
diff --git a/doc/tmpl/liboilfunction.sgml b/doc/tmpl/liboilfunction.sgml
index 39654d5..6c24fff 100644
--- a/doc/tmpl/liboilfunction.sgml
+++ b/doc/tmpl/liboilfunction.sgml
@@ -60,13 +60,6 @@ OilFunction
</para>
-@next:
-@klass:
-@func:
-@flags:
-@name:
-@profile_ave:
-@profile_std:
<!-- ##### MACRO OIL_GET ##### -->
<para>
diff --git a/doc/tmpl/liboilparameter.sgml b/doc/tmpl/liboilparameter.sgml
index b260d95..e0b5993 100644
--- a/doc/tmpl/liboilparameter.sgml
+++ b/doc/tmpl/liboilparameter.sgml
@@ -78,26 +78,4 @@ liboilparameter
</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
index 201d580..dbc2bb7 100644
--- a/doc/tmpl/liboilprofile.sgml
+++ b/doc/tmpl/liboilprofile.sgml
@@ -29,15 +29,6 @@ liboilprofile
</para>
-@start:
-@stop:
-@min:
-@last:
-@total:
-@n:
-@hist_n:
-@hist_time:
-@hist_count:
<!-- ##### MACRO oil_profile_stamp ##### -->
<para>
diff --git a/doc/tmpl/liboiltest.sgml b/doc/tmpl/liboiltest.sgml
index c0e4333..a364d49 100644
--- a/doc/tmpl/liboiltest.sgml
+++ b/doc/tmpl/liboiltest.sgml
@@ -22,18 +22,6 @@ liboiltest
</para>
-@klass:
-@impl:
-@proto:
-@params:
-@prof:
-@iterations:
-@n:
-@m:
-@inited:
-@tested_ref:
-@sum_abs_diff:
-@n_points:
<!-- ##### MACRO OIL_TEST_HEADER ##### -->
<para>
diff --git a/doc/tmpl/liboiltypes.sgml b/doc/tmpl/liboiltypes.sgml
index 1a14c87..013e084 100644
--- a/doc/tmpl/liboiltypes.sgml
+++ b/doc/tmpl/liboiltypes.sgml
@@ -17,85 +17,29 @@ liboiltypes
<!-- ##### SECTION Stability_Level ##### -->
-<!-- ##### 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>
diff --git a/liboil/dct/dct12_f32.c b/liboil/dct/dct12_f32.c
index c654c26..16c5d52 100644
--- a/liboil/dct/dct12_f32.c
+++ b/liboil/dct/dct12_f32.c
@@ -34,9 +34,41 @@
#include <math.h>
+/**
+ * oil_mdct12_f64:
+ * @d_6:
+ * @s_12:
+ *
+ * Performs a Modified Discrete Cosine Transform (MDCT)
+ * on the source array @s_12 and places the result in @d_6.
+ */
OIL_DEFINE_CLASS (mdct12_f64, "double *d_6, double *s_12");
+/**
+ * oil_imdct12_f64:
+ * @d_12:
+ * @s_6:
+ *
+ * Performs a Inverse Modified Discrete Cosine Transform (IMDCT)
+ * on the source array @s_6 and places the result in @d_12.
+ */
OIL_DEFINE_CLASS (imdct12_f64, "double *d_12, double *s_6");
+/**
+ * oil_mdct36_f64:
+ * @d_18:
+ * @s_36:
+ *
+ * Performs a Modified Discrete Cosine Transform (MDCT)
+ * on the source array @s_36 and places the result in @d_18.
+ */
OIL_DEFINE_CLASS (mdct36_f64, "double *d_18, double *s_36");
+/**
+ * oil_imdct36_f64:
+ * @d_36:
+ * @s_18:
+ *
+ * Performs a Inverse Modified Discrete Cosine Transform (IMDCT)
+ * on the source array @s_18 and places the result in @d_36.
+ */
OIL_DEFINE_CLASS (imdct36_f64, "double *d_36, double *s_18");
static void
diff --git a/liboil/dct/dct36_f32.c b/liboil/dct/dct36_f32.c
index f1315c7..7b3897b 100644
--- a/liboil/dct/dct36_f32.c
+++ b/liboil/dct/dct36_f32.c
@@ -32,6 +32,15 @@
#include <liboil/liboilfunction.h>
#include <liboil/dct/dct.h>
+/**
+ * oil_dct36_f32:
+ * @d_36:
+ * @dstr:
+ * @s_36:
+ * @sstr:
+ *
+ * FIXME: This function is broken.
+ */
OIL_DEFINE_CLASS(dct36_f32, "float *d_36, int dstr, float *s_36, int sstr");
static void
diff --git a/liboil/dct/fdct8_f64.c b/liboil/dct/fdct8_f64.c
index 65d6bea..55a792a 100644
--- a/liboil/dct/fdct8_f64.c
+++ b/liboil/dct/fdct8_f64.c
@@ -33,6 +33,16 @@
#include <liboil/dct/dct.h>
#include <math.h>
+/**
+ * oil_fdct8_f64:
+ * @d_8:
+ * @s_8:
+ * @dstr:
+ * @sstr:
+ *
+ * Performs a Forward Discrete Cosine Transform on @s_8 and places
+ * the result in @d_8.
+ */
OIL_DEFINE_CLASS (fdct8_f64, "double *d_8, double *s_8, int dstr, int sstr");
#define C0_9808 0.980785280
diff --git a/liboil/dct/fdct8x8_f64.c b/liboil/dct/fdct8x8_f64.c
index d6f3b38..6ae1f3d 100644
--- a/liboil/dct/fdct8x8_f64.c
+++ b/liboil/dct/fdct8x8_f64.c
@@ -35,6 +35,16 @@
#include <math.h>
+/**
+ * oil_fdct8x8_f64:
+ * @d_8x8:
+ * @dstr:
+ * @s_8x8:
+ * @sstr:
+ *
+ * Performs a 2-D Forward Discrete Cosine Transform on @s_8x8 and places
+ * the result in @d_8x8.
+ */
OIL_DEFINE_CLASS(fdct8x8_f64,
"double *d_8x8, int dstr, double *s_8x8, int sstr");
diff --git a/liboil/dct/fdct8x8s_s16.c b/liboil/dct/fdct8x8s_s16.c
index 4e522b4..73a4697 100644
--- a/liboil/dct/fdct8x8s_s16.c
+++ b/liboil/dct/fdct8x8s_s16.c
@@ -43,11 +43,18 @@
#define C0_3827 0.382683432
#define C0_1951 0.195090322
-/*
-Alternate scaling used by RTjpeg.
-*/
-
-
+/**
+ * oil_fdct8x8s_s16:
+ * @d_8x8:
+ * @dstr:
+ * @s_8x8:
+ * @sstr:
+ *
+ * Performs a 2-D Forward Discrete Cosine Transform on @s_8x8 and places
+ * the result in @d_8x8.
+ *
+ * This function uses an alternate scaling used by RTjpeg.
+ */
OIL_DEFINE_CLASS(fdct8x8s_s16,
"int16_t *d_8x8, int ds, int16_t *s_8x8, int ss");
diff --git a/liboil/dct/fdct8x8theora.c b/liboil/dct/fdct8x8theora.c
index b485525..48acfca 100644
--- a/liboil/dct/fdct8x8theora.c
+++ b/liboil/dct/fdct8x8theora.c
@@ -38,7 +38,7 @@
********************************************************************
function:
- last mod: $Id: fdct8x8theora.c,v 1.1 2005-08-03 03:31:18 ds Exp $
+ last mod: $Id: fdct8x8theora.c,v 1.2 2005-11-14 05:34:36 ds Exp $
********************************************************************/
@@ -62,6 +62,17 @@ static int32_t xC7S1 = 12785;
#define SIGNBITDUPPED(X) ((signed )(((X) & 0x80000000)) >> 31)
#define DOROUND(X) ( (SIGNBITDUPPED(X) & (0xffff)) + (X) )
+/**
+ * oil_fdct8x8theora:
+ * @s_8x8:
+ * @d_8x8:
+ *
+ * Calculates the FDCT transformation of @s_8x8 according to the Theora
+ * specification and places the result in @d_8x8.
+ *
+ * Note that the source and destination arrays are reversed compared
+ * to normal Liboil order.
+ */
OIL_DEFINE_CLASS(fdct8x8theora, "int16_t *s_8x8, int16_t *d_8x8");
static void
diff --git a/liboil/dct/idct8_f64.c b/liboil/dct/idct8_f64.c
index 67762fe..f99a3ab 100644
--- a/liboil/dct/idct8_f64.c
+++ b/liboil/dct/idct8_f64.c
@@ -33,6 +33,16 @@
#include <liboil/dct/dct.h>
#include <math.h>
+/**
+ * oil_idct8_f64:
+ * @d_8:
+ * @dstr:
+ * @s_8:
+ * @sstr:
+ *
+ * Performs a Inverse Discrete Cosine Transform on @s_8 and places
+ * the result in @d_8.
+ */
OIL_DEFINE_CLASS (idct8_f64, "double *d_8, int dstr, double *s_8, int sstr");
#define C0_9808 0.980785280
diff --git a/liboil/dct/idct8x8_c.c b/liboil/dct/idct8x8_c.c
index 96efe00..3157733 100644
--- a/liboil/dct/idct8x8_c.c
+++ b/liboil/dct/idct8x8_c.c
@@ -43,9 +43,51 @@
#define BLOCK8x8_S16(ptr, stride, row, column) \
(*((int16_t *)((void *)ptr + stride*row) + column))
+/**
+ * oil_idct8x8_f64:
+ * @d_8x8:
+ * @dstr:
+ * @s_8x8:
+ * @sstr:
+ *
+ * Performs a 2-D Inverse Discrete Cosine Transform on @s_8x8 and places
+ * the result in @d_8x8.
+ */
OIL_DEFINE_CLASS (idct8x8_f64, "double *d_8x8, int dstr, double *s_8x8, int sstr");
+/**
+ * oil_idct8x8lim10_f64:
+ * @d_8x8:
+ * @dstr:
+ * @s_8x8:
+ * @sstr:
+ *
+ * Performs a 2-D Inverse Discrete Cosine Transform on @s_8x8 and places
+ * the result in @d_8x8.
+ */
OIL_DEFINE_CLASS (idct8x8lim10_f64, "double *d_8x8, int dstr, double *s_8x8, int sstr");
+/**
+ * oil_idct8x8_s16:
+ * @d_8x8:
+ * @dstr:
+ * @s_8x8:
+ * @sstr:
+ *
+ * Performs a limited 2-D Inverse Discrete Cosine Transform on @s_8x8
+ * and places the result in @d_8x8. The source 8x8 block must be non-zero
+ * only in the 10 lowest-order components.
+ */
OIL_DEFINE_CLASS (idct8x8_s16, "int16_t *d_8x8, int dstr, int16_t *s_8x8, int sstr");
+/**
+ * oil_idct8x8lim10_s16:
+ * @d_8x8:
+ * @dstr:
+ * @s_8x8:
+ * @sstr:
+ *
+ * Performs a limited 2-D Inverse Discrete Cosine Transform on @s_8x8
+ * and places the result in @d_8x8. The source 8x8 block must be non-zero
+ * only in the 10 lowest-order components.
+ */
OIL_DEFINE_CLASS (idct8x8lim10_s16, "int16_t *d_8x8, int dstr, int16_t *s_8x8, int sstr");
static void
diff --git a/liboil/dct/idct8x8theora_ref.c b/liboil/dct/idct8x8theora_ref.c
index d2b1c74..3c5fb00 100644
--- a/liboil/dct/idct8x8theora_ref.c
+++ b/liboil/dct/idct8x8theora_ref.c
@@ -68,7 +68,27 @@ idct8x8theora_s16_test (OilTest *test)
}
+/**
+ * oil_idct8theora_s16:
+ * @d_8:
+ * @dstr:
+ * @s_8:
+ * @sstr:
+ *
+ * Performs a Inverse Discrete Cosine Transform on @s_8 and places
+ * the result in @d_8, as defined by the Theora specification.
+ */
OIL_DEFINE_CLASS_FULL (idct8theora_s16, "int16_t *d_8, int dstr, int16_t *s_8, int sstr", idct8theora_s16_test);
+/**
+ * oil_idct8x8theora_s16:
+ * @d_8x8:
+ * @dstr:
+ * @s_8x8:
+ * @sstr:
+ *
+ * Performs a Inverse Discrete Cosine Transform on @s_8x8 and places
+ * the result in @d_8x8, as defined by the Theora specification.
+ */
OIL_DEFINE_CLASS_FULL (idct8x8theora_s16, "int16_t *d_8x8, int dstr, int16_t *s_8x8, int sstr", idct8x8theora_s16_test);
diff --git a/liboil/dct/imdct32_f32.c b/liboil/dct/imdct32_f32.c
index db5af43..a5860bd 100644
--- a/liboil/dct/imdct32_f32.c
+++ b/liboil/dct/imdct32_f32.c
@@ -33,6 +33,15 @@
#include <liboil/dct/dct.h>
#include <math.h>
+
+/**
+ * oil_imdct32_f32:
+ * @d_32:
+ * @s_32:
+ *
+ * Performs a Inverse Modified Discrete Cosine Transform (IMDCT)
+ * on the source array @s_32 and places the result in @d_32.
+ */
OIL_DEFINE_CLASS (imdct32_f32, "float *d_32, float *s_32");
static void imdct32_f32_ref (float *dest, float *src)
diff --git a/liboil/jpeg/convert8x8_c.c b/liboil/jpeg/convert8x8_c.c
index 0b6323d..496aa95 100644
--- a/liboil/jpeg/convert8x8_c.c
+++ b/liboil/jpeg/convert8x8_c.c
@@ -33,10 +33,43 @@
#include <math.h>
+/**
+ * oil_conv8x8_s16_f64:
+ * @d_8x8:
+ * @dstr:
+ * @s_8x8:
+ * @sstr:
+ *
+ * Converts elements in source array @s_8x8 to the destination
+ * type, placing the results in @d_8x8.
+ */
OIL_DEFINE_CLASS (conv8x8_s16_f64,
"int16_t * d_8x8, int dstr, double *s_8x8, int sstr");
+/**
+ * oil_conv8x8_f64_s16:
+ * @d_8x8:
+ * @dstr:
+ * @s_8x8:
+ * @sstr:
+ *
+ * Converts elements in source array @s_8x8 to the destination
+ * type, placing the results in @d_8x8. The conversion of source
+ * values outside the destination range are undefined and
+ * implementation dependent.
+ */
OIL_DEFINE_CLASS (conv8x8_f64_s16,
"double *d_8x8, int dstr, int16_t * s_8x8, int sstr");
+/**
+ * oil_clipconv8x8_u8_s16:
+ * @d_8x8:
+ * @dstr:
+ * @s_8x8:
+ * @sstr:
+ *
+ * Converts elements in source array @s_8x8 to the destination
+ * type, placing the results in @d_8x8. Source values outside
+ * the destination range are clipped to the destination range.
+ */
OIL_DEFINE_CLASS (clipconv8x8_u8_s16,
"uint8_t * d_8x8, int dstr, int16_t * s_8x8, int sstr");
diff --git a/liboil/jpeg/jpeg_rgb_decoder.c b/liboil/jpeg/jpeg_rgb_decoder.c
index 8a505a6..4665694 100644
--- a/liboil/jpeg/jpeg_rgb_decoder.c
+++ b/liboil/jpeg/jpeg_rgb_decoder.c
@@ -33,7 +33,18 @@
#include "jpeg.h"
-OIL_DEFINE_CLASS (scanlinescale2_u8, "uint8_t *dest, uint8_t *src, int n");
+/**
+ * oil_scanlinescale2_u8:
+ * @d: destination array
+ * @s: source array
+ * @n: number of elements
+ *
+ * Upsamples the source array by a factor of two. That is, if the
+ * values in @s are A,B,C,D,E, the values written to @d are
+ * A,A,B,B,C,C,D,D,E,E. Note that @n is the number of elements
+ * written to @d, and that half of @s is not used.
+ */
+OIL_DEFINE_CLASS (scanlinescale2_u8, "uint8_t *d, uint8_t *s, int n");
static void
scanlinescale2_u8_ref (uint8_t *dest, uint8_t *src, int n)
diff --git a/liboil/jpeg/quantize8x8_c.c b/liboil/jpeg/quantize8x8_c.c
index e3bd067..7f8e03c 100644
--- a/liboil/jpeg/quantize8x8_c.c
+++ b/liboil/jpeg/quantize8x8_c.c
@@ -32,8 +32,20 @@
#include <liboil/liboil.h>
#include "jpeg.h"
+/**
+ * oil_dequantize8x8_s16:
+ * @d_8x8:
+ * @dstr:
+ * @s1_8x8:
+ * @sstr1:
+ * @s2_8x8:
+ *
+ * Multiplies each element in @s1_8x8 by the corresponding element
+ * in @s2_8x8 and places the result in @d_8x8.
+ */
OIL_DEFINE_CLASS (dequantize8x8_s16,
- "int16_t *d_8x8, int dstr, int16_t *s1_8x8, int sstr1, int16_t *s2_8x8, int sstr2");
+ "int16_t *d_8x8, int dstr, int16_t *s1_8x8, int sstr1, "
+ "int16_t *s2_8x8, int sstr2");
#define BLOCK8x8_S16(ptr, stride, row, column) \
(*((int16_t *)((void *)ptr + stride*row) + column))
diff --git a/liboil/jpeg/zigzag8x8_c.c b/liboil/jpeg/zigzag8x8_c.c
index 688973c..5534f43 100644
--- a/liboil/jpeg/zigzag8x8_c.c
+++ b/liboil/jpeg/zigzag8x8_c.c
@@ -32,8 +32,30 @@
#include <liboil/liboil.h>
#include "jpeg.h"
+/**
+ * oil_zigzag8x8_s16:
+ * @d_8x8:
+ * @ds:
+ * @s_8x8:
+ * @ss:
+ *
+ * Reorders an 8x8 block using a zig-zag pattern. The zig-zag pattern
+ * is described in the JPEG specification.
+ *
+ * FIXME: describe zigzag pattern
+ */
OIL_DEFINE_CLASS (zigzag8x8_s16,
"int16_t *d_8x8, int ds, int16_t *s_8x8, int ss");
+/**
+ * oil_unzigzag8x8_s16:
+ * @d_8x8:
+ * @ds:
+ * @s_8x8:
+ * @ss:
+ *
+ * Reorders an 8x8 block to reverse the zig-zag reordering of
+ * @oil_zigzag8x8_s16.
+ */
OIL_DEFINE_CLASS (unzigzag8x8_s16,
"int16_t *d_8x8, int ds, int16_t *s_8x8, int ss");
diff --git a/liboil/liboilclasses.h b/liboil/liboilclasses.h
index a8f07cc..8878e15 100644
--- a/liboil/liboilclasses.h
+++ b/liboil/liboilclasses.h
@@ -286,6 +286,12 @@ OIL_DECLARE_CLASS(vectoradd_f64);
OIL_DECLARE_CLASS(vectoradd_s16);
OIL_DECLARE_CLASS(vectoradd_s32);
OIL_DECLARE_CLASS(vectoradd_s8);
+OIL_DECLARE_CLASS(vectoradd_s_f32);
+OIL_DECLARE_CLASS(vectoradd_s_f64);
+OIL_DECLARE_CLASS(vectoradd_s_s16);
+OIL_DECLARE_CLASS(vectoradd_s_s8);
+OIL_DECLARE_CLASS(vectoradd_s_u16);
+OIL_DECLARE_CLASS(vectoradd_s_u8);
OIL_DECLARE_CLASS(vectoradd_u16);
OIL_DECLARE_CLASS(vectoradd_u32);
OIL_DECLARE_CLASS(vectoradd_u8);
diff --git a/liboil/liboilcolorspace.h b/liboil/liboilcolorspace.h
index cb5f297..dfc660c 100644
--- a/liboil/liboilcolorspace.h
+++ b/liboil/liboilcolorspace.h
@@ -30,28 +30,134 @@
#include <liboil/liboilrandom.h>
+/**
+ * oil_max:
+ * @x: a value
+ * @y: a value
+ *
+ * Evaluates to the maximum of @x and @y.
+ */
#define oil_max(x,y) ((x)>(y)?(x):(y))
+/**
+ * oil_min:
+ * @x: a value
+ * @y: a value
+ *
+ * Evaluates to the minimum of @x and @y.
+ */
#define oil_min(x,y) ((x)<(y)?(x):(y))
+/**
+ * oil_clamp_255:
+ * @x: a value
+ *
+ * Clamps @x to the range [0,255].
+ *
+ * Evaluates to the clamped value.
+ */
#define oil_clamp_255(x) oil_max(0,oil_min((x),255))
+/**
+ * oil_argb:
+ * @a: alpha component
+ * @r: red component
+ * @g: green component
+ * @b: blue component
+ *
+ * Creates a Liboil ARGB value from individual components. Clamps
+ * each component to [0,255].
+ *
+ * Evaluates to the ARGB value
+ */
#define oil_argb(a,r,g,b) \
((oil_clamp_255(a)<<24) | \
(oil_clamp_255(r)<<16) | \
(oil_clamp_255(g)<<8) | \
(oil_clamp_255(b)<<0))
+/**
+ * oil_argb_noclamp:
+ * @a: alpha component
+ * @r: red component
+ * @g: green component
+ * @b: blue component
+ *
+ * Creates a Liboil ARGB value from individual components. Does not
+ * clamp components.
+ *
+ * Evaluates to the ARGB value
+ */
#define oil_argb_noclamp(a,r,g,b) \
(((a)<<24) | ((r)<<16) | ((g)<<8) | ((b)<<0))
+/**
+ * oil_argb_A:
+ * @color: an ARGB value
+ *
+ * Extracts the alpha component from @color.
+ *
+ * Evaluates to the alpha component
+ */
#define oil_argb_A(color) (((color)>>24)&0xff)
+/**
+ * oil_argb_R:
+ * @color: an ARGB value
+ *
+ * Extracts the red component from @color.
+ *
+ * Evaluates to the red component
+ */
#define oil_argb_R(color) (((color)>>16)&0xff)
+/**
+ * oil_argb_G:
+ * @color: an ARGB value
+ *
+ * Extracts the green component from @color.
+ *
+ * Evaluates to the green component
+ */
#define oil_argb_G(color) (((color)>>8)&0xff)
+/**
+ * oil_argb_B:
+ * @color: an ARGB value
+ *
+ * Extracts the blue component from @color.
+ *
+ * Evaluates to the blue component
+ */
#define oil_argb_B(color) (((color)>>0)&0xff)
+/**
+ * oil_divide_255:
+ * @x: a value in the range [0,255]
+ *
+ * Divides @x by 255 in a way that is compatible with the pixel
+ * operations in Liboil.
+ *
+ * Evaluates to @x divided by 255.
+ */
#define oil_divide_255(x) ((((x)+128) + (((x)+128)>>8))>>8)
+/**
+ * oil_muldiv_255:
+ * @a: a value in the range [0,255]
+ * @b: a value in the range [0,255]
+ *
+ * Multiplies @a and @b and divides the result by 255 in a way that
+ * is compatible with the pixel operations in Liboil.
+ *
+ * Evaluates to the result.
+ */
#define oil_muldiv_255(a,b) oil_divide_255((a)*(b))
+/**
+ * oil_rand_rgba:
+ * @a: an alpha value
+ *
+ * Creates a valid random RGBA value with the alpha value @a. Valid
+ * input values for @a are [0,255].
+ *
+ * Evaluates to the result.
+ */
#define oil_rand_rgba(a) \
oil_argb_noclamp((a), \
oil_muldiv_255((a),oil_rand_u8()), \
diff --git a/liboil/liboilcpu.c b/liboil/liboilcpu.c
index 5ef0077..af592e7 100644
--- a/liboil/liboilcpu.c
+++ b/liboil/liboilcpu.c
@@ -45,6 +45,12 @@
#include <sys/sysctl.h>
#endif
+/**
+ * SECTION:liboilcpu
+ * @short_description: Checking the capabilities of the current CPU
+ *
+ */
+
#if defined(__i386__)
static char * get_cpuinfo_flags_string (char *cpuinfo);
static char ** strsplit (char *s);
@@ -308,6 +314,13 @@ _oil_cpu_init (void)
OIL_INFO ("cpu flags %08lx", oil_cpu_flags);
}
+/**
+ * oil_cpu_get_flags:
+ *
+ * Returns a bitmask containing the available CPU features.
+ *
+ * Returns: the CPU features.
+ */
unsigned int
oil_cpu_get_flags (void)
{
@@ -392,6 +405,15 @@ illegal_instruction_handler (int num)
}
}
+/**
+ * oil_cpu_fault_check_enable:
+ *
+ * Enables fault checking mode. This function may be called multiple times.
+ * Each call to this function must be paired with a corresponding call
+ * to @oil_cpu_fault_check_disable.
+ *
+ * This function sets a signal handler for SIGILL.
+ */
void
oil_cpu_fault_check_enable (void)
{
@@ -401,13 +423,28 @@ oil_cpu_fault_check_enable (void)
action.sa_handler = &illegal_instruction_handler;
sigaction (SIGILL, &action, &oldaction);
#else
- signal (SIGILL, illegal_instruction_handler);
+ oldhandler = signal (SIGILL, illegal_instruction_handler);
#endif
in_try_block = 0;
}
enable_level++;
}
+/**
+ * oil_cpu_fault_check_try:
+ * @func: the function to attempt
+ * @priv: a value to pass to the function
+ *
+ * Calls to this
+ * function must be preceded by a call to @oil_cpu_fault_check_enable
+ * to enable fault checking mode. This function sets up recovery
+ * information and then calls the function @func with the parameter
+ * @priv. If @func or any other functions it calls attempt to execute
+ * an illegal instruction, the exception will be caught and recovered from.
+ *
+ * Returns: 1 if the function was executed sucessfully, 0 if the
+ * function attempted to execute an illegal instruction.
+ */
int
oil_cpu_fault_check_try (void (*func) (void *), void *priv)
{
@@ -423,6 +460,12 @@ oil_cpu_fault_check_try (void (*func) (void *), void *priv)
return (ret == 0);
}
+/**
+ * oil_cpu_fault_check_disable:
+ *
+ * Disables fault checking mode. See @oil_cpu_fault_check_enable
+ * for details.
+ */
void
oil_cpu_fault_check_disable (void)
{
@@ -437,32 +480,21 @@ oil_cpu_fault_check_disable (void)
}
#if 0
-void oil_memory_prefetch_local (void *ptr, int n_bytes)
-{
-#ifdef __i386__
- if (oil_cpu_flags & OIL_IMPL_FLAG_MMX) {
- asm volatile (
- "prefetcht0 %0\n"
- :: "m" (ptr));
- }
-#endif
-
-}
-
-void oil_memory_prefetch_transient (void *ptr, int n_bytes)
-{
-#ifdef __i386__
- if (oil_cpu_flags & OIL_IMPL_FLAG_MMX) {
- asm volatile (
- "prefetchnta %0\n"
- :: "m" (ptr));
- }
-#endif
-
-}
-#endif
-
-#if 0
+/**
+ * oil_cpu_get_ticks_per_second:
+ *
+ * Returns the estimated number of ticks per second. This feature
+ * is currently unimplemented.
+ *
+ * This function may take several milliseconds or more to execute
+ * in order to calculate a good estimate of the number of ticks (as
+ * measured by the profiling functions) per second. Note that the
+ * number of ticks per second is often dependent on the CPU frequency,
+ * which can change dynamically. Thus the value returned by this
+ * function may be incorrect as soon as it is returned.
+ *
+ * Returns: a double
+ */
double
oil_cpu_get_ticks_per_second (void)
{
diff --git a/liboil/liboildebug.c b/liboil/liboildebug.c
index 02cd5f3..a6db72b 100644
--- a/liboil/liboildebug.c
+++ b/liboil/liboildebug.c
@@ -36,6 +36,11 @@
#include <stdarg.h>
#include <stdlib.h>
+/**
+ * SECTION:liboildebug
+ * @short_description: Printing and formatting debug information
+ */
+
static void oil_debug_print_valist (int level, const char *file,
const char *func, int line, const char *format, va_list args);
@@ -92,18 +97,39 @@ _oil_debug_print (int level, const char *file, const char *func,
va_end (var_args);
}
+/**
+ * oil_debug_get_level:
+ *
+ * Gets the current debug level.
+ *
+ * Returns: the current debug level
+ */
int
oil_debug_get_level (void)
{
return _oil_debug_level;
}
+/**
+ * oil_debug_set_level:
+ * @level: the new debug level
+ *
+ * Sets the current debug level.
+ */
void
oil_debug_set_level (int level)
{
_oil_debug_level = level;
}
+/**
+ * oil_debug_set_print_function:
+ * @func:
+ *
+ * Sets the function to call when outputting debugging information.
+ * A value of NULL for @func will restore the default handler,
+ * which prints debugging information to stderr.
+ */
void
oil_debug_set_print_function (OilDebugPrintFunc func)
{
diff --git a/liboil/liboildebug.h b/liboil/liboildebug.h
index 59cc30e..56f68b7 100644
--- a/liboil/liboildebug.h
+++ b/liboil/liboildebug.h
@@ -30,9 +30,27 @@
#include <stdarg.h>
+/**
+ * OilDebugPrintFunc:
+ * @level: the debug level
+ * @file: name of the file where the debug message occurs
+ * @func: name of the function where the debug message occurs
+ * @line: line in the file where the debug message occurs
+ * @format: a printf format
+ * @varargs: varargs for the printf format
+ *
+ * Typedef describing functions that can be registered using
+ * @oil_debug_set_print_function() so that it is called to
+ * print debugging messages.
+ */
typedef void (*OilDebugPrintFunc) (int level, const char *file,
const char *func, int line, const char *format, va_list varargs);
+/**
+ * OilDebugLevel:
+ *
+ * Enumeration describing debug levels in Liboil.
+ */
typedef enum {
OIL_DEBUG_NONE = 0,
OIL_DEBUG_ERROR,
@@ -42,10 +60,35 @@ typedef enum {
OIL_DEBUG_LOG
} OilDebugLevel;
+/**
+ * OIL_ERROR:
+ *
+ * Macro to call @OIL_DEBUG_PRINT() with a level of @OIL_DEBUG_ERROR.
+ */
#define OIL_ERROR(...) OIL_DEBUG_PRINT(OIL_DEBUG_ERROR, __VA_ARGS__)
+/**
+ * OIL_WARNING:
+ *
+ * Macro to call @OIL_DEBUG_PRINT() with a level of @OIL_DEBUG_WARNING.
+ */
#define OIL_WARNING(...) OIL_DEBUG_PRINT(OIL_DEBUG_WARNING, __VA_ARGS__)
+/**
+ * OIL_INFO:
+ *
+ * Macro to call @OIL_DEBUG_PRINT() with a level of @OIL_DEBUG_INFO.
+ */
#define OIL_INFO(...) OIL_DEBUG_PRINT(OIL_DEBUG_INFO, __VA_ARGS__)
+/**
+ * OIL_DEBUG:
+ *
+ * Macro to call @OIL_DEBUG_PRINT() with a level of @OIL_DEBUG_DEBUG.
+ */
#define OIL_DEBUG(...) OIL_DEBUG_PRINT(OIL_DEBUG_DEBUG, __VA_ARGS__)
+/**
+ * OIL_LOG:
+ *
+ * Macro to call @OIL_DEBUG_PRINT() with a level of @OIL_DEBUG_LOG.
+ */
#define OIL_LOG(...) OIL_DEBUG_PRINT(OIL_DEBUG_LOG, __VA_ARGS__)
#if defined (__GNUC__) || defined (__PRETTY_FUNCTION__)
@@ -56,6 +99,14 @@ typedef enum {
#define OIL_FUNCTION ""
#endif
+/**
+ * OIL_DEBUG_PRINT:
+ * @level:
+ * @...:
+ *
+ * Macro to call _oil_debug_print() with the correct values for
+ * the name of the source file, line of source file, and function.
+ */
#define OIL_DEBUG_PRINT(level, ...) do { \
_oil_debug_print((level), __FILE__, OIL_FUNCTION, __LINE__, __VA_ARGS__); \
}while(0)
diff --git a/liboil/liboilfuncs.h b/liboil/liboilfuncs.h
index 250a524..73fe4ca 100644
--- a/liboil/liboilfuncs.h
+++ b/liboil/liboilfuncs.h
@@ -58,7 +58,7 @@ extern OilFunctionClass *oil_function_class_ptr_argb_paint_u8;
typedef void (*_oil_type_argb_paint_u8)(uint8_t * i_4xn, const uint8_t * s1_4, const uint8_t * s2_n, int n);
#define oil_argb_paint_u8 ((_oil_type_argb_paint_u8)(*(void **)oil_function_class_ptr_argb_paint_u8))
extern OilFunctionClass *oil_function_class_ptr_average2_u8;
-typedef void (*_oil_type_average2_u8)(uint8_t * dest, int dstr, const uint8_t * src1, int sstr1, const uint8_t * src2, int sstr2, int n);
+typedef void (*_oil_type_average2_u8)(uint8_t * d, int dstr, const uint8_t * s1, int sstr1, const uint8_t * s2, int sstr2, int n);
#define oil_average2_u8 ((_oil_type_average2_u8)(*(void **)oil_function_class_ptr_average2_u8))
extern OilFunctionClass *oil_function_class_ptr_ayuv2argb_u8;
typedef void (*_oil_type_ayuv2argb_u8)(uint8_t * d_4xn, const uint8_t * s_4xn, int n);
@@ -415,13 +415,13 @@ extern OilFunctionClass *oil_function_class_ptr_dequantize8x8_s16;
typedef void (*_oil_type_dequantize8x8_s16)(int16_t * d_8x8, int dstr, const int16_t * s1_8x8, int sstr1, const int16_t * s2_8x8, int sstr2);
#define oil_dequantize8x8_s16 ((_oil_type_dequantize8x8_s16)(*(void **)oil_function_class_ptr_dequantize8x8_s16))
extern OilFunctionClass *oil_function_class_ptr_diff8x8_average_s16_u8;
-typedef void (*_oil_type_diff8x8_average_s16_u8)(int16_t * d_64, const uint8_t * s1_8x8, int ss1, const uint8_t * s2_8x8, int ss2, const uint8_t * s3_8x8, int ss3);
+typedef void (*_oil_type_diff8x8_average_s16_u8)(int16_t * d_8x8, const uint8_t * s1_8x8, int ss1, const uint8_t * s2_8x8, int ss2, const uint8_t * s3_8x8, int ss3);
#define oil_diff8x8_average_s16_u8 ((_oil_type_diff8x8_average_s16_u8)(*(void **)oil_function_class_ptr_diff8x8_average_s16_u8))
extern OilFunctionClass *oil_function_class_ptr_diff8x8_const128_s16_u8;
-typedef void (*_oil_type_diff8x8_const128_s16_u8)(int16_t * d_64, const uint8_t * s1_8x8, int ss1);
+typedef void (*_oil_type_diff8x8_const128_s16_u8)(int16_t * d_8x8, const uint8_t * s1_8x8, int ss1);
#define oil_diff8x8_const128_s16_u8 ((_oil_type_diff8x8_const128_s16_u8)(*(void **)oil_function_class_ptr_diff8x8_const128_s16_u8))
extern OilFunctionClass *oil_function_class_ptr_diff8x8_s16_u8;
-typedef void (*_oil_type_diff8x8_s16_u8)(int16_t * d_64, const uint8_t * s1_8x8, int ss1, const uint8_t * s2_8x8, int ss2);
+typedef void (*_oil_type_diff8x8_s16_u8)(int16_t * d_8x8, const uint8_t * s1_8x8, int ss1, const uint8_t * s2_8x8, int ss2);
#define oil_diff8x8_s16_u8 ((_oil_type_diff8x8_s16_u8)(*(void **)oil_function_class_ptr_diff8x8_s16_u8))
extern OilFunctionClass *oil_function_class_ptr_diffsquaresum_f64;
typedef void (*_oil_type_diffsquaresum_f64)(double * d_1, const double * src1, int sstr1, const double * src2, int sstr2, int n);
@@ -592,55 +592,55 @@ extern OilFunctionClass *oil_function_class_ptr_sad8x8_u8_avg;
typedef void (*_oil_type_sad8x8_u8_avg)(uint32_t * d_1, const uint8_t * s1_8x8, int ss1, const uint8_t * s2_8x8, const uint8_t * s3_8x8, int ss2);
#define oil_sad8x8_u8_avg ((_oil_type_sad8x8_u8_avg)(*(void **)oil_function_class_ptr_sad8x8_u8_avg))
extern OilFunctionClass *oil_function_class_ptr_scalaradd_f32;
-typedef void (*_oil_type_scalaradd_f32)(float * dest, int dstr, const float * src, int sstr, const float * s2_1, int n);
+typedef void (*_oil_type_scalaradd_f32)(float * d, int dstr, const float * s1, int sstr, const float * s2_1, int n);
#define oil_scalaradd_f32 ((_oil_type_scalaradd_f32)(*(void **)oil_function_class_ptr_scalaradd_f32))
extern OilFunctionClass *oil_function_class_ptr_scalaradd_f32_ns;
typedef void (*_oil_type_scalaradd_f32_ns)(float * d, const float * s1, const float * s2_1, int n);
#define oil_scalaradd_f32_ns ((_oil_type_scalaradd_f32_ns)(*(void **)oil_function_class_ptr_scalaradd_f32_ns))
extern OilFunctionClass *oil_function_class_ptr_scalaradd_f64;
-typedef void (*_oil_type_scalaradd_f64)(double * dest, int dstr, const double * src, int sstr, const double * s2_1, int n);
+typedef void (*_oil_type_scalaradd_f64)(double * d, int dstr, const double * s1, int sstr, const double * s2_1, int n);
#define oil_scalaradd_f64 ((_oil_type_scalaradd_f64)(*(void **)oil_function_class_ptr_scalaradd_f64))
extern OilFunctionClass *oil_function_class_ptr_scalaradd_s16;
-typedef void (*_oil_type_scalaradd_s16)(int16_t * dest, int dstr, const int16_t * src, int sstr, const int16_t * s2_1, int n);
+typedef void (*_oil_type_scalaradd_s16)(int16_t * d, int dstr, const int16_t * s1, int sstr, const int16_t * s2_1, int n);
#define oil_scalaradd_s16 ((_oil_type_scalaradd_s16)(*(void **)oil_function_class_ptr_scalaradd_s16))
extern OilFunctionClass *oil_function_class_ptr_scalaradd_s32;
-typedef void (*_oil_type_scalaradd_s32)(int32_t * dest, int dstr, const int32_t * src, int sstr, const int32_t * s2_1, int n);
+typedef void (*_oil_type_scalaradd_s32)(int32_t * d, int dstr, const int32_t * s1, int sstr, const int32_t * s2_1, int n);
#define oil_scalaradd_s32 ((_oil_type_scalaradd_s32)(*(void **)oil_function_class_ptr_scalaradd_s32))
extern OilFunctionClass *oil_function_class_ptr_scalaradd_s8;
-typedef void (*_oil_type_scalaradd_s8)(int8_t * dest, int dstr, const int8_t * src, int sstr, const int8_t * s2_1, int n);
+typedef void (*_oil_type_scalaradd_s8)(int8_t * d, int dstr, const int8_t * s1, int sstr, const int8_t * s2_1, int n);
#define oil_scalaradd_s8 ((_oil_type_scalaradd_s8)(*(void **)oil_function_class_ptr_scalaradd_s8))
extern OilFunctionClass *oil_function_class_ptr_scalaradd_u16;
-typedef void (*_oil_type_scalaradd_u16)(uint16_t * dest, int dstr, const uint16_t * src, int sstr, const uint16_t * s2_1, int n);
+typedef void (*_oil_type_scalaradd_u16)(uint16_t * d, int dstr, const uint16_t * s1, int sstr, const uint16_t * s2_1, int n);
#define oil_scalaradd_u16 ((_oil_type_scalaradd_u16)(*(void **)oil_function_class_ptr_scalaradd_u16))
extern OilFunctionClass *oil_function_class_ptr_scalaradd_u32;
-typedef void (*_oil_type_scalaradd_u32)(uint32_t * dest, int dstr, const uint32_t * src, int sstr, const uint32_t * s2_1, int n);
+typedef void (*_oil_type_scalaradd_u32)(uint32_t * d, int dstr, const uint32_t * s1, int sstr, const uint32_t * s2_1, int n);
#define oil_scalaradd_u32 ((_oil_type_scalaradd_u32)(*(void **)oil_function_class_ptr_scalaradd_u32))
extern OilFunctionClass *oil_function_class_ptr_scalaradd_u8;
-typedef void (*_oil_type_scalaradd_u8)(uint8_t * dest, int dstr, const uint8_t * src, int sstr, const uint8_t * s2_1, int n);
+typedef void (*_oil_type_scalaradd_u8)(uint8_t * d, int dstr, const uint8_t * s1, int sstr, const uint8_t * s2_1, int n);
#define oil_scalaradd_u8 ((_oil_type_scalaradd_u8)(*(void **)oil_function_class_ptr_scalaradd_u8))
extern OilFunctionClass *oil_function_class_ptr_scalarmult_f32;
-typedef void (*_oil_type_scalarmult_f32)(float * dest, int dstr, const float * src, int sstr, const float * s2_1, int n);
+typedef void (*_oil_type_scalarmult_f32)(float * d, int dstr, const float * s1, int sstr, const float * s2_1, int n);
#define oil_scalarmult_f32 ((_oil_type_scalarmult_f32)(*(void **)oil_function_class_ptr_scalarmult_f32))
extern OilFunctionClass *oil_function_class_ptr_scalarmult_f64;
-typedef void (*_oil_type_scalarmult_f64)(double * dest, int dstr, const double * src, int sstr, const double * s2_1, int n);
+typedef void (*_oil_type_scalarmult_f64)(double * d, int dstr, const double * s1, int sstr, const double * s2_1, int n);
#define oil_scalarmult_f64 ((_oil_type_scalarmult_f64)(*(void **)oil_function_class_ptr_scalarmult_f64))
extern OilFunctionClass *oil_function_class_ptr_scalarmult_s16;
-typedef void (*_oil_type_scalarmult_s16)(int16_t * dest, int dstr, const int16_t * src, int sstr, const int16_t * s2_1, int n);
+typedef void (*_oil_type_scalarmult_s16)(int16_t * d, int dstr, const int16_t * s1, int sstr, const int16_t * s2_1, int n);
#define oil_scalarmult_s16 ((_oil_type_scalarmult_s16)(*(void **)oil_function_class_ptr_scalarmult_s16))
extern OilFunctionClass *oil_function_class_ptr_scalarmult_s32;
-typedef void (*_oil_type_scalarmult_s32)(int32_t * dest, int dstr, const int32_t * src, int sstr, const int32_t * s2_1, int n);
+typedef void (*_oil_type_scalarmult_s32)(int32_t * d, int dstr, const int32_t * s1, int sstr, const int32_t * s2_1, int n);
#define oil_scalarmult_s32 ((_oil_type_scalarmult_s32)(*(void **)oil_function_class_ptr_scalarmult_s32))
extern OilFunctionClass *oil_function_class_ptr_scalarmult_s8;
-typedef void (*_oil_type_scalarmult_s8)(int8_t * dest, int dstr, const int8_t * src, int sstr, const int8_t * s2_1, int n);
+typedef void (*_oil_type_scalarmult_s8)(int8_t * d, int dstr, const int8_t * s1, int sstr, const int8_t * s2_1, int n);
#define oil_scalarmult_s8 ((_oil_type_scalarmult_s8)(*(void **)oil_function_class_ptr_scalarmult_s8))
extern OilFunctionClass *oil_function_class_ptr_scalarmult_u16;
-typedef void (*_oil_type_scalarmult_u16)(uint16_t * dest, int dstr, const uint16_t * src, int sstr, const uint16_t * s2_1, int n);
+typedef void (*_oil_type_scalarmult_u16)(uint16_t * d, int dstr, const uint16_t * s1, int sstr, const uint16_t * s2_1, int n);
#define oil_scalarmult_u16 ((_oil_type_scalarmult_u16)(*(void **)oil_function_class_ptr_scalarmult_u16))
extern OilFunctionClass *oil_function_class_ptr_scalarmult_u32;
-typedef void (*_oil_type_scalarmult_u32)(uint32_t * dest, int dstr, const uint32_t * src, int sstr, const uint32_t * s2_1, int n);
+typedef void (*_oil_type_scalarmult_u32)(uint32_t * d, int dstr, const uint32_t * s1, int sstr, const uint32_t * s2_1, int n);
#define oil_scalarmult_u32 ((_oil_type_scalarmult_u32)(*(void **)oil_function_class_ptr_scalarmult_u32))
extern OilFunctionClass *oil_function_class_ptr_scalarmult_u8;
-typedef void (*_oil_type_scalarmult_u8)(uint8_t * dest, int dstr, const uint8_t * src, int sstr, const uint8_t * s2_1, int n);
+typedef void (*_oil_type_scalarmult_u8)(uint8_t * d, int dstr, const uint8_t * s1, int sstr, const uint8_t * s2_1, int n);
#define oil_scalarmult_u8 ((_oil_type_scalarmult_u8)(*(void **)oil_function_class_ptr_scalarmult_u8))
extern OilFunctionClass *oil_function_class_ptr_scalarmultiply_f32_ns;
typedef void (*_oil_type_scalarmultiply_f32_ns)(float * d, const float * s1, const float * s2_1, int n);
@@ -718,7 +718,7 @@ extern OilFunctionClass *oil_function_class_ptr_scaleconv_u8_f64;
typedef void (*_oil_type_scaleconv_u8_f64)(uint8_t * dest, const double * src, int n, const double * s2_1, const double * s3_1);
#define oil_scaleconv_u8_f64 ((_oil_type_scaleconv_u8_f64)(*(void **)oil_function_class_ptr_scaleconv_u8_f64))
extern OilFunctionClass *oil_function_class_ptr_scanlinescale2_u8;
-typedef void (*_oil_type_scanlinescale2_u8)(uint8_t * dest, const uint8_t * src, int n);
+typedef void (*_oil_type_scanlinescale2_u8)(uint8_t * d, const uint8_t * s, int n);
#define oil_scanlinescale2_u8 ((_oil_type_scanlinescale2_u8)(*(void **)oil_function_class_ptr_scanlinescale2_u8))
extern OilFunctionClass *oil_function_class_ptr_sign_f32;
typedef void (*_oil_type_sign_f32)(float * d, const float * s, int n);
@@ -739,13 +739,13 @@ extern OilFunctionClass *oil_function_class_ptr_splat_u8_ns;
typedef void (*_oil_type_splat_u8_ns)(uint8_t * dest, const uint8_t * s1_1, int n);
#define oil_splat_u8_ns ((_oil_type_splat_u8_ns)(*(void **)oil_function_class_ptr_splat_u8_ns))
extern OilFunctionClass *oil_function_class_ptr_squaresum_f64;
-typedef void (*_oil_type_squaresum_f64)(double * dest, const double * src, int n);
+typedef void (*_oil_type_squaresum_f64)(double * d, const double * s, int n);
#define oil_squaresum_f64 ((_oil_type_squaresum_f64)(*(void **)oil_function_class_ptr_squaresum_f64))
extern OilFunctionClass *oil_function_class_ptr_subtract_f32;
typedef void (*_oil_type_subtract_f32)(float * d, const float * s1, const float * s2, int n);
#define oil_subtract_f32 ((_oil_type_subtract_f32)(*(void **)oil_function_class_ptr_subtract_f32))
extern OilFunctionClass *oil_function_class_ptr_sum_f64;
-typedef void (*_oil_type_sum_f64)(double * dest, const double * src, int sstr, int n);
+typedef void (*_oil_type_sum_f64)(double * d_1, const double * s, int sstr, int n);
#define oil_sum_f64 ((_oil_type_sum_f64)(*(void **)oil_function_class_ptr_sum_f64))
extern OilFunctionClass *oil_function_class_ptr_tablelookup_u8;
typedef void (*_oil_type_tablelookup_u8)(uint8_t * d, int ds, const uint8_t * s1, int ss1, const uint8_t * s2_256, int ss2, int n);
@@ -772,28 +772,46 @@ extern OilFunctionClass *oil_function_class_ptr_uyvy2ayuv;
typedef void (*_oil_type_uyvy2ayuv)(uint32_t * d_n, const uint32_t * s_n, int n);
#define oil_uyvy2ayuv ((_oil_type_uyvy2ayuv)(*(void **)oil_function_class_ptr_uyvy2ayuv))
extern OilFunctionClass *oil_function_class_ptr_vectoradd_f32;
-typedef void (*_oil_type_vectoradd_f32)(float * dest, int dstr, const float * src1, int sstr1, const float * src2, int sstr2, int n, const float * s3_1, const float * s4_1);
+typedef void (*_oil_type_vectoradd_f32)(float * d, int dstr, const float * s1, int sstr1, const float * s2, int sstr2, int n, const float * s3_1, const float * s4_1);
#define oil_vectoradd_f32 ((_oil_type_vectoradd_f32)(*(void **)oil_function_class_ptr_vectoradd_f32))
extern OilFunctionClass *oil_function_class_ptr_vectoradd_f64;
-typedef void (*_oil_type_vectoradd_f64)(double * dest, int dstr, const double * src1, int sstr1, const double * src2, int sstr2, int n, const double * s3_1, const double * s4_1);
+typedef void (*_oil_type_vectoradd_f64)(double * d, int dstr, const double * s1, int sstr1, const double * s2, int sstr2, int n, const double * s3_1, const double * s4_1);
#define oil_vectoradd_f64 ((_oil_type_vectoradd_f64)(*(void **)oil_function_class_ptr_vectoradd_f64))
extern OilFunctionClass *oil_function_class_ptr_vectoradd_s16;
-typedef void (*_oil_type_vectoradd_s16)(int16_t * dest, int dstr, const int16_t * src1, int sstr1, const int16_t * src2, int sstr2, int n, const int16_t * s3_1, const int16_t * s4_1);
+typedef void (*_oil_type_vectoradd_s16)(int16_t * d, int dstr, const int16_t * s1, int sstr1, const int16_t * s2, int sstr2, int n, const int16_t * s3_1, const int16_t * s4_1);
#define oil_vectoradd_s16 ((_oil_type_vectoradd_s16)(*(void **)oil_function_class_ptr_vectoradd_s16))
extern OilFunctionClass *oil_function_class_ptr_vectoradd_s32;
-typedef void (*_oil_type_vectoradd_s32)(int32_t * dest, int dstr, const int32_t * src1, int sstr1, const int32_t * src2, int sstr2, int n, const int32_t * s3_1, const int32_t * s4_1);
+typedef void (*_oil_type_vectoradd_s32)(int32_t * d, int dstr, const int32_t * s1, int sstr1, const int32_t * s2, int sstr2, int n, const int32_t * s3_1, const int32_t * s4_1);
#define oil_vectoradd_s32 ((_oil_type_vectoradd_s32)(*(void **)oil_function_class_ptr_vectoradd_s32))
extern OilFunctionClass *oil_function_class_ptr_vectoradd_s8;
-typedef void (*_oil_type_vectoradd_s8)(int8_t * dest, int dstr, const int8_t * src1, int sstr1, const int8_t * src2, int sstr2, int n, const int8_t * s3_1, const int8_t * s4_1);
+typedef void (*_oil_type_vectoradd_s8)(int8_t * d, int dstr, const int8_t * s1, int sstr1, const int8_t * s2, int sstr2, int n, const int8_t * s3_1, const int8_t * s4_1);
#define oil_vectoradd_s8 ((_oil_type_vectoradd_s8)(*(void **)oil_function_class_ptr_vectoradd_s8))
+extern OilFunctionClass *oil_function_class_ptr_vectoradd_s_f32;
+typedef void (*_oil_type_vectoradd_s_f32)(float * d, int dstr, const float * s1, int sstr1, const float * s2, int sstr2, int n);
+#define oil_vectoradd_s_f32 ((_oil_type_vectoradd_s_f32)(*(void **)oil_function_class_ptr_vectoradd_s_f32))
+extern OilFunctionClass *oil_function_class_ptr_vectoradd_s_f64;
+typedef void (*_oil_type_vectoradd_s_f64)(double * d, int dstr, const double * s1, int sstr1, const double * s2, int sstr2, int n);
+#define oil_vectoradd_s_f64 ((_oil_type_vectoradd_s_f64)(*(void **)oil_function_class_ptr_vectoradd_s_f64))
+extern OilFunctionClass *oil_function_class_ptr_vectoradd_s_s16;
+typedef void (*_oil_type_vectoradd_s_s16)(int16_t * d, int dstr, const int16_t * s1, int sstr1, const int16_t * s2, int sstr2, int n);
+#define oil_vectoradd_s_s16 ((_oil_type_vectoradd_s_s16)(*(void **)oil_function_class_ptr_vectoradd_s_s16))
+extern OilFunctionClass *oil_function_class_ptr_vectoradd_s_s8;
+typedef void (*_oil_type_vectoradd_s_s8)(int8_t * d, int dstr, const int8_t * s1, int sstr1, const int8_t * s2, int sstr2, int n);
+#define oil_vectoradd_s_s8 ((_oil_type_vectoradd_s_s8)(*(void **)oil_function_class_ptr_vectoradd_s_s8))
+extern OilFunctionClass *oil_function_class_ptr_vectoradd_s_u16;
+typedef void (*_oil_type_vectoradd_s_u16)(uint16_t * d, int dstr, const uint16_t * s1, int sstr1, const uint16_t * s2, int sstr2, int n);
+#define oil_vectoradd_s_u16 ((_oil_type_vectoradd_s_u16)(*(void **)oil_function_class_ptr_vectoradd_s_u16))
+extern OilFunctionClass *oil_function_class_ptr_vectoradd_s_u8;
+typedef void (*_oil_type_vectoradd_s_u8)(uint8_t * d, int dstr, const uint8_t * s1, int sstr1, const uint8_t * s2, int sstr2, int n);
+#define oil_vectoradd_s_u8 ((_oil_type_vectoradd_s_u8)(*(void **)oil_function_class_ptr_vectoradd_s_u8))
extern OilFunctionClass *oil_function_class_ptr_vectoradd_u16;
-typedef void (*_oil_type_vectoradd_u16)(uint16_t * dest, int dstr, const uint16_t * src1, int sstr1, const uint16_t * src2, int sstr2, int n, const uint16_t * s3_1, const uint16_t * s4_1);
+typedef void (*_oil_type_vectoradd_u16)(uint16_t * d, int dstr, const uint16_t * s1, int sstr1, const uint16_t * s2, int sstr2, int n, const uint16_t * s3_1, const uint16_t * s4_1);
#define oil_vectoradd_u16 ((_oil_type_vectoradd_u16)(*(void **)oil_function_class_ptr_vectoradd_u16))
extern OilFunctionClass *oil_function_class_ptr_vectoradd_u32;
-typedef void (*_oil_type_vectoradd_u32)(uint32_t * dest, int dstr, const uint32_t * src1, int sstr1, const uint32_t * src2, int sstr2, int n, const uint32_t * s3_1, const uint32_t * s4_1);
+typedef void (*_oil_type_vectoradd_u32)(uint32_t * d, int dstr, const uint32_t * s1, int sstr1, const uint32_t * s2, int sstr2, int n, const uint32_t * s3_1, const uint32_t * s4_1);
#define oil_vectoradd_u32 ((_oil_type_vectoradd_u32)(*(void **)oil_function_class_ptr_vectoradd_u32))
extern OilFunctionClass *oil_function_class_ptr_vectoradd_u8;
-typedef void (*_oil_type_vectoradd_u8)(uint8_t * dest, int dstr, const uint8_t * src1, int sstr1, const uint8_t * src2, int sstr2, int n, const uint8_t * s3_1, const uint8_t * s4_1);
+typedef void (*_oil_type_vectoradd_u8)(uint8_t * d, int dstr, const uint8_t * s1, int sstr1, const uint8_t * s2, int sstr2, int n, const uint8_t * s3_1, const uint8_t * s4_1);
#define oil_vectoradd_u8 ((_oil_type_vectoradd_u8)(*(void **)oil_function_class_ptr_vectoradd_u8))
extern OilFunctionClass *oil_function_class_ptr_yuv2rgbx_sub2_u8;
typedef void (*_oil_type_yuv2rgbx_sub2_u8)(uint8_t * d_4xn, const uint8_t * src1, const uint8_t * src2, const uint8_t * src3, int n);
diff --git a/liboil/liboilfunction.c b/liboil/liboilfunction.c
index 6b4a0b5..768c66e 100644
--- a/liboil/liboilfunction.c
+++ b/liboil/liboilfunction.c
@@ -36,6 +36,57 @@
#include <string.h>
#include <stdlib.h>
+/**
+ * SECTION:liboilfunction
+ * @short_description:
+ * Functions for manipulating function classes and implementations.
+ */
+
+/**
+ * liboilfunction: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>
+ */
+
extern OilFunctionClass *_oil_function_class_array[];
extern OilFunctionImpl *_oil_function_impl_array[];
@@ -152,6 +203,8 @@ oil_optimize (const char *class_name)
/**
* oil_class_get_n_classes:
*
+ * Returns the number of function classes.
+ *
* Returns: the number of function classes
*/
int
diff --git a/liboil/liboilfunction.h b/liboil/liboilfunction.h
index fcfa922..6d91eb3 100644
--- a/liboil/liboilfunction.h
+++ b/liboil/liboilfunction.h
@@ -48,7 +48,14 @@
#define OIL_OPT_SUFFIX
#endif
+/**
+ * OilFunctionClass:
+ *
+ * An opaque structure representing a function class.
+ *
+ */
struct _OilFunctionClass {
+ /*< private >*/
void *func;
const char *name;
const char *desc;
@@ -62,7 +69,14 @@ struct _OilFunctionClass {
const char *prototype;
};
+/**
+ * OilFunctionImpl:
+ *
+ * An opaque structure representing a function implementation.
+ *
+ */
struct _OilFunctionImpl {
+ /*< private >*/
void *next;
OilFunctionClass *klass;
void *func;
@@ -99,6 +113,10 @@ struct _OilFunctionImpl {
#define OIL_DECLARE_CLASS(klass) \
extern OilFunctionClass _oil_function_class_ ## klass
+/**
+ * SECTION:liboilmacros
+ * @short_description: Macros
+ */
#ifndef OIL_NO_CLASSES
#define OIL_DEFINE_CLASS_FULL(klass, string, test) \
diff --git a/liboil/liboilparameter.h b/liboil/liboilparameter.h
index c92a066..32d797d 100644
--- a/liboil/liboilparameter.h
+++ b/liboil/liboilparameter.h
@@ -30,6 +30,11 @@
#include <liboil/liboiltypes.h>
+/**
+ * OilType:
+ *
+ * Enumeration containing the data types understood by Liboil.
+ */
typedef enum {
OIL_TYPE_UNKNOWN = 0,
OIL_TYPE_INT,
@@ -55,6 +60,12 @@ typedef enum {
OIL_TYPE_f64p,
} OilType;
+/**
+ * OilArgType:
+ *
+ * Enumeration containing the types of parameter types understood
+ * by Liboil.
+ */
typedef enum {
OIL_ARG_UNKNOWN = 0,
OIL_ARG_N,
@@ -81,7 +92,14 @@ typedef enum {
OIL_ARG_LAST
} OilArgType;
+/**
+ * OilParameter:
+ *
+ * An opaque structure representing a single parameter in the
+ * function prototype of an OilFunctionClass.
+ */
struct _OilParameter {
+ /*< private >*/
char *type_name;
char *parameter_name;
diff --git a/liboil/liboilprofile.c b/liboil/liboilprofile.c
index c15a5ec..352d6f8 100644
--- a/liboil/liboilprofile.c
+++ b/liboil/liboilprofile.c
@@ -36,6 +36,20 @@
#include <string.h>
#include <math.h>
+/**
+ * SECTION:liboilprofile
+ * @short_description:
+ * Measuring the length of time needed to execute Liboil functions.
+ *
+ */
+
+/**
+ * oil_profile_stamp_gtod:
+ *
+ * Creates a timestamp using the function gettimofday().
+ *
+ * Returns: a timestamp
+ */
unsigned long oil_profile_stamp_gtod (void)
{
#ifdef HAVE_GETTIMEOFDAY
@@ -47,6 +61,12 @@ unsigned long oil_profile_stamp_gtod (void)
#endif
}
+/**
+ * oil_profile_init:
+ * @prof: the OilProfile structure
+ *
+ * Initializes a profiling structure.
+ */
void
oil_profile_init (OilProfile *prof)
{
@@ -56,6 +76,14 @@ oil_profile_init (OilProfile *prof)
}
+/**
+ * oil_profile_stop_handle:
+ * @prof: the OilProfile structure
+ *
+ * Handles post-processing of a single profiling run.
+ *
+ * FIXME: need more info
+ */
void
oil_profile_stop_handle (OilProfile *prof)
{
@@ -81,6 +109,17 @@ oil_profile_stop_handle (OilProfile *prof)
}
}
+/**
+ * oil_profile_get_ave_std:
+ * @prof: the OilProfile structure
+ * @ave_p: pointer to average
+ * @std_p: pointer to standard deviation
+ *
+ * Calculates the average and standard deviation of a number of
+ * profiling runs, and places the results in the locations
+ * provided by @ave_p and @std_p. Either @ave_p and @std_p may
+ * be NULL, in which case the values will not be written.
+ */
void
oil_profile_get_ave_std (OilProfile *prof, double *ave_p, double *std_p)
{
diff --git a/liboil/liboilprofile.h b/liboil/liboilprofile.h
index d09d3fc..3226241 100644
--- a/liboil/liboilprofile.h
+++ b/liboil/liboilprofile.h
@@ -33,7 +33,13 @@
#define OIL_PROFILE_HIST_LENGTH 10
typedef struct _OilProfile OilProfile;
+/**
+ * OilProfile:
+ *
+ * An opaque structure representing profiling information.
+ */
struct _OilProfile {
+ /*< private >*/
unsigned long start;
unsigned long stop;
unsigned long min;
@@ -46,6 +52,14 @@ struct _OilProfile {
int hist_count[OIL_PROFILE_HIST_LENGTH];
};
+/**
+ * oil_profile_stamp:
+ *
+ * Creates a timestamp based on a CPU-specific high-frequency
+ * counter, if available.
+ *
+ * Returns: a timestamp
+ */
#if defined(__i386__)
static inline unsigned long oil_profile_stamp(void)
@@ -139,9 +153,24 @@ void oil_profile_init(OilProfile *prof);
void oil_profile_stop_handle(OilProfile *prof);
void oil_profile_get_ave_std (OilProfile *prof, double *ave_p, double *std_p);
+/**
+ * oil_profile_start:
+ * @x: a pointer to an OilProfile structure
+ *
+ * Starts a profiling run by obtaining a timestamp via @oil_profile_stamp()
+ * and writing it into @x.
+ */
#define oil_profile_start(x) do{ \
(x)->start = oil_profile_stamp(); \
}while(0)
+/**
+ * oil_profile_stop:
+ * @x: a pointer to an OilProfile structure
+ *
+ * Stops a profiling run by obtaining a timestamp via @oil_profile_stamp()
+ * and writing it into @x. It then calls @oil_profile_stop_handle() to
+ * handle post-processing of the profiling run.
+ */
#define oil_profile_stop(x) do{ \
(x)->stop = oil_profile_stamp(); \
oil_profile_stop_handle(x); \
diff --git a/liboil/liboilprototype.c b/liboil/liboilprototype.c
index b8d6eef..def53ab 100644
--- a/liboil/liboilprototype.c
+++ b/liboil/liboilprototype.c
@@ -37,6 +37,20 @@
#include <liboil/liboilprototype.h>
#include <liboil/liboildebug.h>
+/**
+ * SECTION:liboilprototype
+ * @short_description:
+ * Functions to manipulate prototype information.
+ *
+ */
+
+/**
+ * SECTION:liboilparameter
+ * @short_description:
+ * Functions to manipulate prototype parameter information.
+ *
+ */
+
#ifndef FALSE
#define FALSE 0
#endif
@@ -63,6 +77,14 @@ static int oil_param_from_string (OilParameter *p, char *s);
static int oil_prototype_check_sanity (OilPrototype *proto);
+/**
+ * oil_prototype_append_param:
+ * @proto: the OilPrototype
+ * @param: an OilParameter
+ *
+ * Appends @param to the list of parameters contained in @proto. The
+ * contents of @param are copied.
+ */
void
oil_prototype_append_param (OilPrototype *proto, OilParameter *param)
{
@@ -72,7 +94,17 @@ oil_prototype_append_param (OilPrototype *proto, OilParameter *param)
proto->params[proto->n_params - 1] = *param;
}
-char *oil_prototype_to_string (OilPrototype *proto)
+/**
+ * oil_prototype_to_string:
+ * @proto: the OilPrototype
+ *
+ * Converts a prototype into the corresponding C style declaration.
+ *
+ * Returns: a string that should be freed using free() when it is no
+ * longer needed.
+ */
+char *
+oil_prototype_to_string (OilPrototype *proto)
{
OilString *string;
OilParameter *param;
@@ -107,7 +139,19 @@ char *oil_prototype_to_string (OilPrototype *proto)
return oil_string_free (string, FALSE);
}
-OilPrototype *oil_prototype_from_string (const char *s)
+/**
+ * oil_prototype_from_string:
+ * @s: a string
+ *
+ * Converts the string @s containing C prototype that follows
+ * Liboil parameter naming rules into a OilPrototype. If the
+ * string cannot be converted, NULL is returned.
+ *
+ * Returns: the OilPrototype. When it is no longer needed, free
+ * the prototype using @oil_prototype_free.
+ */
+OilPrototype *
+oil_prototype_from_string (const char *s)
{
OilPrototype *proto;
OilParameter param = { 0 };
@@ -208,6 +252,12 @@ static char * parse_string (const char *s, const char **endptr)
return _strndup(s0, s - s0);
}
+/**
+ * oil_prototype_free:
+ * @proto: the OilPrototype
+ *
+ * Frees memory associated with @proto.
+ */
void
oil_prototype_free (OilPrototype *proto)
{
@@ -285,6 +335,14 @@ _strndup (const char *s, int n)
}
+/**
+ * oil_type_sizeof:
+ * @type: the OilType
+ *
+ * Looks up the size of the OilType represented by @type.
+ *
+ * Returns: the size of @type
+ */
int oil_type_sizeof (OilType type)
{
switch (type) {
@@ -369,6 +427,14 @@ static const char *oil_type_names_3 [] = {
};
#define ARRAY_LENGTH(x) (sizeof(x)/sizeof(x[0]))
+/**
+ * oil_type_name:
+ * @type: an OilType
+ *
+ * Looks up the name of the OilType given by @type.
+ *
+ * Returns: a string containing the name of the OilType @type.
+ */
const char * oil_type_name (OilType type)
{
@@ -411,6 +477,14 @@ static OilType oil_type_from_string (const char *s, int ptr)
return OIL_TYPE_UNKNOWN;
}
+/**
+ * oil_arg_type_name:
+ * @type: an OilArgType
+ *
+ * Looks up the name of the OilArgType specified by @type.
+ *
+ * Returns: a string containing the name
+ */
const char * oil_arg_type_name (OilArgType type)
{
switch (type) {
diff --git a/liboil/liboilprototype.h b/liboil/liboilprototype.h
index 1f470d3..d014637 100644
--- a/liboil/liboilprototype.h
+++ b/liboil/liboilprototype.h
@@ -32,6 +32,12 @@
#include <liboil/liboilparameter.h>
typedef struct _OilPrototype OilPrototype;
+/**
+ * OilPrototype:
+ *
+ * An opaque structure describing the C function prototype of
+ * an @OilFunctionClass.
+ */
struct _OilPrototype {
int n_params;
OilParameter *params;
diff --git a/liboil/liboilrandom.h b/liboil/liboilrandom.h
index a681c75..832005a 100644
--- a/liboil/liboilrandom.h
+++ b/liboil/liboilrandom.h
@@ -30,49 +30,218 @@
#include <stdlib.h>
-/* random number generation */
+/**
+ * SECTION:liboilrandom
+ * @short_description: Random number generation
+ */
+/**
+ * oil_rand_s32:
+ *
+ * Evaluates to a random integer in the range [-(1<<31), (1<<31)-1].
+ */
#define oil_rand_s32() ((rand()&0xffff)<<16 | (rand()&0xffff))
+/**
+ * oil_rand_s32_l31:
+ *
+ * Evaluates to a random integer in the range [-(1<<30), (1<<30)-1].
+ */
#define oil_rand_s32_l31() (((int32_t)rand())-0x40000000)
+/**
+ * oil_rand_s64:
+ *
+ * Evaluates to a random integer in the range [-(1<<63), (1<<63)-1].
+ */
#define oil_rand_s64() ((int64_t)(oil_rand_s32())<<32 | oil_rand_s32())
+/**
+ * oil_rand_s16:
+ *
+ * Evaluates to a random integer in the range [-(1<<15), (1<<15)-1].
+ */
#define oil_rand_s16() ((int16_t)(rand()&0xffff))
+/**
+ * oil_rand_s16_l15:
+ *
+ * Evaluates to a random integer in the range [-(1<<14), (1<<14)-1].
+ */
#define oil_rand_s16_l15() (oil_rand_s16()>>1)
+/**
+ * oil_rand_s16_l9:
+ *
+ * Evaluates to a random integer in the range [-(1<<8), (1<<8)-1].
+ */
#define oil_rand_s16_l9() (oil_rand_s16()>>7)
+/**
+ * oil_rand_s16_l8:
+ *
+ * Evaluates to a random integer in the range [-(1<<7), (1<<7)-1].
+ */
#define oil_rand_s16_l8() (oil_rand_s16()>>8)
+/**
+ * oil_rand_s16_l4:
+ *
+ * Evaluates to a random integer in the range [-(1<<3), (1<<3)-1].
+ */
#define oil_rand_s16_l4() (oil_rand_s16()>>12)
+/**
+ * oil_rand_s8:
+ *
+ * Evaluates to a random integer in the range [-(1<<7), (1<<7)-1].
+ */
#define oil_rand_s8() ((int8_t)(rand()&0xffff))
+/**
+ * oil_rand_u32:
+ *
+ * Evaluates to a random integer in the range [0, (1<<32)-1].
+ */
#define oil_rand_u32() ((uint32_t)((rand()&0xffff)<<16 | (rand()&0xffff)))
+/**
+ * oil_rand_u32_l31:
+ *
+ * Evaluates to a random integer in the range [0, (1<<31)-1].
+ */
#define oil_rand_u32_l31() ((uint32_t)rand())
+/**
+ * oil_rand_u64:
+ *
+ * Evaluates to a random integer in the range [0, (1<<64)-1].
+ */
#define oil_rand_u64() ((uint64_t)(oil_rand_u32())<<32 | oil_rand_u32())
+/**
+ * oil_rand_u16:
+ *
+ * Evaluates to a random integer in the range [0, (1<<16)-1].
+ */
#define oil_rand_u16() ((uint16_t)(rand()&0xffff))
+/**
+ * oil_rand_u8:
+ *
+ * Evaluates to a random integer in the range [0, (1<<8)-1].
+ */
#define oil_rand_u8() ((uint8_t)(rand()&0xffff))
+/**
+ * oil_rand_f64_0_1:
+ *
+ * Evaluates to a random double-precision floating point number
+ * in the range [0, 1.0).
+ */
#define oil_rand_f64_0_1() (((rand()/(RAND_MAX+1.0))+rand())/(RAND_MAX+1.0))
+/**
+ * oil_rand_f64_s32:
+ *
+ * Evaluates to a random double-precision floating point number
+ * in the range [-(1<<31), (1<<31)). Note that when rounded to the
+ * nearest integer, this exceeds the range of int32_t.
+ */
#define oil_rand_f64_s32() (oil_rand_f64_0_1()*4294967296.0-2147483648.0)
+/**
+ * oil_rand_f64_s16:
+ *
+ * Evaluates to a random double-precision floating point number
+ * in the range [-(1<<15), (1<<15)). Note that when rounded to the
+ * nearest integer, this exceeds the range of int16_t.
+ */
#define oil_rand_f64_s16() (oil_rand_f64_0_1()*65536.0-32768.0)
+/**
+ * oil_rand_f64_s8:
+ *
+ * Evaluates to a random double-precision floating point number
+ * in the range [-(1<<7), (1<<7)). Note that when rounded to the
+ * nearest integer, this exceeds the range of int8_t.
+ */
#define oil_rand_f64_s8() (oil_rand_f64_0_1()*256.0-128.0)
+/**
+ * oil_rand_f64_u32:
+ *
+ * Evaluates to a random double-precision floating point number
+ * in the range [0, (1<<32)). Note that when rounded to the
+ * nearest integer, this exceeds the range of uint32_t.
+ */
#define oil_rand_f64_u32() (oil_rand_f64_0_1()*4294967296.0)
+/**
+ * oil_rand_f64_u16:
+ *
+ * Evaluates to a random double-precision floating point number
+ * in the range [0, (1<<16)). Note that when rounded to the
+ * nearest integer, this exceeds the range of uint16_t.
+ */
#define oil_rand_f64_u16() (oil_rand_f64_0_1()*65536.0)
+/**
+ * oil_rand_f64_u8:
+ *
+ * Evaluates to a random double-precision floating point number
+ * in the range [0, (1<<8)). Note that when rounded to the
+ * nearest integer, this exceeds the range of uint8_t.
+ */
#define oil_rand_f64_u8() (oil_rand_f64_0_1()*256.0)
+/**
+ * oil_rand_f32_0_1:
+ *
+ * Evaluates to a random single-precision floating point number
+ * in the range [0, 1.0).
+ */
#define oil_rand_f32_0_1() (rand()/(RAND_MAX+1.0))
+/**
+ * oil_rand_f32_s32:
+ *
+ * Evaluates to a random double-precision floating point number
+ * in the range [-(1<<31), (1<<31)). Note that when rounded to the
+ * nearest integer, this exceeds the range of int32_t.
+ */
#define oil_rand_f32_s32() (oil_rand_f64_0_1()*4294967296.0-2147483648.0)
+/**
+ * oil_rand_f32_s16:
+ *
+ * Evaluates to a random double-precision floating point number
+ * in the range [-(1<<15), (1<<15)). Note that when rounded to the
+ * nearest integer, this exceeds the range of int16_t.
+ */
#define oil_rand_f32_s16() (oil_rand_f64_0_1()*65536.0-32768.0)
+/**
+ * oil_rand_f32_s8:
+ *
+ * Evaluates to a random double-precision floating point number
+ * in the range [-(1<<7), (1<<7)). Note that when rounded to the
+ * nearest integer, this exceeds the range of int8_t.
+ */
#define oil_rand_f32_s8() (oil_rand_f64_0_1()*256.0-128.0)
+/**
+ * oil_rand_f32_u32:
+ *
+ * Evaluates to a random double-precision floating point number
+ * in the range [0, (1<<32)). Note that when rounded to the
+ * nearest integer, this exceeds the range of uint32_t.
+ */
#define oil_rand_f32_u32() (oil_rand_f64_0_1()*4294967296.0)
+/**
+ * oil_rand_f32_u16:
+ *
+ * Evaluates to a random double-precision floating point number
+ * in the range [0, (1<<16)). Note that when rounded to the
+ * nearest integer, this exceeds the range of uint16_t.
+ */
#define oil_rand_f32_u16() (oil_rand_f64_0_1()*65536.0)
+/**
+ * oil_rand_f32_u8:
+ *
+ * Evaluates to a random double-precision floating point number
+ * in the range [0, (1<<8)). Note that when rounded to the
+ * nearest integer, this exceeds the range of uint8_t.
+ */
#define oil_rand_f32_u8() (oil_rand_f64_0_1()*256.0)
#endif
diff --git a/liboil/liboiltest.c b/liboil/liboiltest.c
index f2bd566..773d527 100644
--- a/liboil/liboiltest.c
+++ b/liboil/liboiltest.c
@@ -39,6 +39,11 @@
#include <stdio.h>
#include <math.h>
+/**
+ * SECTION:liboiltest
+ * @short_description: Test and profile function implementations.
+ *
+ */
static void oil_test_init_params (OilTest *test);
static void fill_array (void *ptr, OilType type, int pre_n, int stride,
int post_n);
@@ -47,6 +52,14 @@ static double check_array (void *data, void *ref, OilType type, int pre_n,
static int check_holes (void *data, OilType type, int pre_n,
int stride, int post_n, int guard);
+/**
+ * oil_test_new:
+ * @klass: an OilFunctionClass
+ *
+ * Creates a new OilTest for the OilFunctionClass represented by @klass.
+ *
+ * Returns: the new OilTest
+ */
OilTest *
oil_test_new (OilFunctionClass *klass)
{
@@ -86,6 +99,12 @@ oil_test_new (OilFunctionClass *klass)
return test;
}
+/**
+ * oil_test_free:
+ * @test: the OilTest
+ *
+ * Frees memory associated with @test.
+ */
void
oil_test_free (OilTest *test)
{
@@ -110,18 +129,40 @@ oil_test_free (OilTest *test)
free(test);
}
+/**
+ * oil_test_set_impl:
+ * @test: the OilTest
+ * @impl: an OilFunctionImpl to set
+ *
+ * Sets the current implementation of @test to @impl.
+ */
void
oil_test_set_impl (OilTest *test, OilFunctionImpl *impl)
{
test->impl = impl;
}
+/**
+ * oil_test_set_iterations:
+ * @test: the OilTest
+ * @iterations: the number of iterations
+ *
+ * Sets the number of iterations of @test to @iterations.
+ */
void
oil_test_set_iterations (OilTest *test, int iterations)
{
test->iterations = iterations;
}
+/**
+ * oil_test_init:
+ * @test: the OilTest
+ *
+ * Intializes @test.
+ *
+ * FIXME: needs work
+ */
void
oil_test_init (OilTest *test)
{
@@ -199,6 +240,13 @@ oil_test_check_function (void * priv)
&test->impl->profile_std);
}
+/**
+ * oil_test_check_ref:
+ * @test: the OilTest
+ *
+ * Runs the test specified by @test on the reference function of the
+ * class being tested.
+ */
void
oil_test_check_ref (OilTest *test)
{
@@ -242,6 +290,16 @@ check_guard (uint8_t *data, int n, int guard)
return 1;
}
+/**
+ * oil_test_check_impl:
+ * @test: the OilTest
+ * @impl: an OilFunctionImpl
+ *
+ * Runs the testing procedure described by @test on the implementation
+ * @impl.
+ *
+ * Returns: 1 if @impl passes the test, 0 if it fails
+ */
int
oil_test_check_impl (OilTest *test, OilFunctionImpl *impl)
{
@@ -313,7 +371,14 @@ oil_test_check_impl (OilTest *test, OilFunctionImpl *impl)
return 1;
}
-
+/**
+ * oil_test_cleanup
+ * @test: the OilTest
+ *
+ * Cleans up @test.
+ *
+ * FIXME: needs work
+ */
void
oil_test_cleanup (OilTest *test)
{
diff --git a/liboil/liboiltest.h b/liboil/liboiltest.h
index 5acccd5..1d778e5 100644
--- a/liboil/liboiltest.h
+++ b/liboil/liboiltest.h
@@ -32,7 +32,14 @@
#include <liboil/liboilprototype.h>
#include <liboil/liboilprofile.h>
+/**
+ * OilTest:
+ *
+ * An opaque structure describing how to test an OilFunctionImpl
+ * for an OilFunctionClass.
+ */
struct _OilTest {
+ /*< private >*/
OilFunctionClass *klass;
OilFunctionImpl *impl;
OilPrototype *proto;
@@ -50,6 +57,15 @@ struct _OilTest {
int n_points;
};
+/**
+ * OilTestFunction:
+ * @test: the @OilTest structure
+ *
+ * Typedef for functions that initialize special values
+ * in source arrays for a particular function class.
+ */
+//typedef void (*OilTestFunction) (OilTest *test);
+
#define OIL_TEST_HEADER 256
#define OIL_TEST_FOOTER 256
diff --git a/liboil/liboiltypes.h b/liboil/liboiltypes.h
index 8f45db0..ed1d3b4 100644
--- a/liboil/liboiltypes.h
+++ b/liboil/liboiltypes.h
@@ -34,6 +34,11 @@
#define NULL ((void *)0)
#endif
+/**
+ * SECTION:liboiltypes
+ * @short_description: Internal Liboil types
+ */
+
typedef struct _OilFunctionClass OilFunctionClass;
typedef struct _OilFunctionImpl OilFunctionImpl;
typedef struct _OilParameter OilParameter;
diff --git a/liboil/md5/md5.c b/liboil/md5/md5.c
index 1462aac..811048a 100644
--- a/liboil/md5/md5.c
+++ b/liboil/md5/md5.c
@@ -33,6 +33,22 @@
#include "md5.h"
+/**
+ * oil_md5:
+ * @i_4:
+ * @s_16:
+ *
+ * Performs an MD5 checksum iteration. The iteration operates on
+ * the 64 bytes contained in @s_16, and changes the hash contained
+ * in @i_4. This only implements a portion of the MD5 algorithm.
+ * The full MD5 algorithm requires initializing the hash
+ * with a specific value and additional handling of bytes at the
+ * end of the stream.
+ *
+ * See also the md5 example in the Liboil source code.
+ *
+ * FIXME: need a reference here
+ */
OIL_DEFINE_CLASS (md5, "uint32_t *i_4, uint32_t *s_16");
#ifdef WORDS_BIGENDIAN
diff --git a/liboil/null.c b/liboil/null.c
index a85348f..d32c0ed 100644
--- a/liboil/null.c
+++ b/liboil/null.c
@@ -31,6 +31,15 @@
#include <liboil/liboilfunction.h>
+/**
+ * oil_null:
+ *
+ * Does nothing, and does it fast.
+ *
+ * This function is useful for testing the overhead of calling
+ * a Liboil function.
+ *
+ */
OIL_DEFINE_CLASS (null, "");
static void
diff --git a/liboil/ref/average2_u8.c b/liboil/ref/average2_u8.c
index a636521..d62b488 100644
--- a/liboil/ref/average2_u8.c
+++ b/liboil/ref/average2_u8.c
@@ -34,9 +34,24 @@
#include <math.h>
+/**
+ * oil_average2_u8:
+ * @d:
+ * @dstr:
+ * @s1:
+ * @sstr1:
+ * @s2:
+ * @sstr2:
+ * @n:
+ *
+ * Averages each element in @s1 and @s2 and places the result in @d.
+ *
+ * FIXME: This class is difficult to optimize and will likely be
+ * replaced.
+ */
OIL_DEFINE_CLASS (average2_u8,
- "uint8_t * dest, int dstr, uint8_t *src1, int sstr1, "
- "uint8_t *src2, int sstr2, int n");
+ "uint8_t *d, int dstr, uint8_t *s1, int sstr1, "
+ "uint8_t *s2, int sstr2, int n");
static void
average2_u8_ref (uint8_t * dest, int dstr, uint8_t *src1, int sstr1,
diff --git a/liboil/ref/clip_ref.c b/liboil/ref/clip_ref.c
index 35e8f72..4d68640 100644
--- a/liboil/ref/clip_ref.c
+++ b/liboil/ref/clip_ref.c
@@ -81,30 +81,115 @@ CLIP_DEFINE_REF (f32);
CLIP_DEFINE_REF (f64);
+/**
+ * oil_clip_s8:
+ * @dest:
+ * @dstr:
+ * @src:
+ * @sstr:
+ * @n:
+ * @s2_1:
+ * @s3_1:
+ *
+ * Clips each value in @src to the range [@s2_1,@s3_1] and places
+ * the result in @dest.
+ */
-#if 0
-#ifdef HAVE_CPU_POWERPC
-static void
-clip_f64_ppcasm(f64 *dest, f64 *src, f64 low, f64 hi, int n)
-{
- f64 ftmp;
+/**
+ * oil_clip_u8:
+ * @dest:
+ * @dstr:
+ * @src:
+ * @sstr:
+ * @n:
+ * @s2_1:
+ * @s3_1:
+ *
+ * Clips each value in @src to the range [@s2_1,@s3_1] and places
+ * the result in @dest.
+ */
- dest--;
- src--;
- __asm__ __volatile__("\n"
- "1: lfdu 0,8(%1)\n"
- " addic. %2,%2,-1\n"
- " fsub 1,0,%3\n"
- " fsel 0,1,0,%3\n"
- " fsub 1,0,%4\n"
- " fsel 0,1,%4,0\n"
- " stfdu 0,8(%0)\n"
- " bge 1b\n"
- : "+b" (dest), "+b" (src), "+r" (n)
- : "f" (low), "f" (hi), "b" (&ftmp)
- : "32", "33", "11" );
-}
-#endif
-#endif
+/**
+ * oil_clip_s16:
+ * @dest:
+ * @dstr:
+ * @src:
+ * @sstr:
+ * @n:
+ * @s2_1:
+ * @s3_1:
+ *
+ * Clips each value in @src to the range [@s2_1,@s3_1] and places
+ * the result in @dest.
+ */
+
+/**
+ * oil_clip_u16:
+ * @dest:
+ * @dstr:
+ * @src:
+ * @sstr:
+ * @n:
+ * @s2_1:
+ * @s3_1:
+ *
+ * Clips each value in @src to the range [@s2_1,@s3_1] and places
+ * the result in @dest.
+ */
+/**
+ * oil_clip_s32:
+ * @dest:
+ * @dstr:
+ * @src:
+ * @sstr:
+ * @n:
+ * @s2_1:
+ * @s3_1:
+ *
+ * Clips each value in @src to the range [@s2_1,@s3_1] and places
+ * the result in @dest.
+ */
+
+/**
+ * oil_clip_u32:
+ * @dest:
+ * @dstr:
+ * @src:
+ * @sstr:
+ * @n:
+ * @s2_1:
+ * @s3_1:
+ *
+ * Clips each value in @src to the range [@s2_1,@s3_1] and places
+ * the result in @dest.
+ */
+
+/**
+ * oil_clip_f32:
+ * @dest:
+ * @dstr:
+ * @src:
+ * @sstr:
+ * @n:
+ * @s2_1:
+ * @s3_1:
+ *
+ * Clips each value in @src to the range [@s2_1,@s3_1] and places
+ * the result in @dest.
+ */
+
+/**
+ * oil_clip_f64:
+ * @dest:
+ * @dstr:
+ * @src:
+ * @sstr:
+ * @n:
+ * @s2_1:
+ * @s3_1:
+ *
+ * Clips each value in @src to the range [@s2_1,@s3_1] and places
+ * the result in @dest.
+ */
diff --git a/liboil/ref/composite.c b/liboil/ref/composite.c
index 26c133b..ceac54e 100644
--- a/liboil/ref/composite.c
+++ b/liboil/ref/composite.c
@@ -99,7 +99,7 @@ composite_test (OilTest *test)
* @d_n: DEST
* @s1_n: SRC
* @s2_n: MASK
- * @n:
+ * @n: number of elements
*
* Performs the compositing operation DEST = SRC IN MASK.
*/
@@ -111,7 +111,7 @@ OIL_DEFINE_CLASS_FULL (composite_in_argb,
* @d_n: DEST
* @s1_1: SRC
* @s2_n: MASK
- * @n:
+ * @n: number of elements
*
* Performs the compositing operation DEST = SRC IN MASK, for a constant
* SRC.
@@ -124,7 +124,7 @@ OIL_DEFINE_CLASS_FULL (composite_in_argb_const_src,
* @d_n: DEST
* @s1_n: SRC
* @s2_1: MASK
- * @n:
+ * @n: number of elements
*
* Performs the compositing operation DEST = SRC IN MASK, for a constant
* MASK.
@@ -136,7 +136,7 @@ OIL_DEFINE_CLASS_FULL (composite_in_argb_const_mask,
* oil_composite_over_argb:
* @i_n: DEST
* @s1_n: SRC
- * @n:
+ * @n: number of elements
*
* Performs the compositing operation DEST = SRC OVER DEST.
*/
@@ -147,7 +147,7 @@ OIL_DEFINE_CLASS_FULL (composite_over_argb,
* oil_composite_over_argb_const_src:
* @i_n: DEST
* @s1_1: SRC
- * @n:
+ * @n: number of elements
*
* Performs the compositing operation DEST = SRC OVER DEST, for a
* constant SRC.
@@ -159,7 +159,7 @@ OIL_DEFINE_CLASS_FULL (composite_over_argb_const_src,
* oil_composite_add_argb:
* @i_n: DEST
* @s1_n: SRC
- * @n:
+ * @n: number of elements
*
* Performs the compositing operation DEST = SRC ADD DEST.
*/
@@ -170,7 +170,7 @@ OIL_DEFINE_CLASS_FULL (composite_add_argb,
* oil_composite_add_argb_const_src:
* @i_n: DEST
* @s1_1: SRC
- * @n:
+ * @n: number of elements
*
* Performs the compositing operation DEST = SRC ADD DEST, for a
* constant SRC.
@@ -183,7 +183,7 @@ OIL_DEFINE_CLASS_FULL (composite_add_argb_const_src,
* @i_n: DEST
* @s1_n: SRC
* @s2_n: MASK
- * @n:
+ * @n: number of elements
*
* Performs the compositing operation DEST = (SRC IN MASK) OVER DEST.
*/
@@ -195,7 +195,7 @@ OIL_DEFINE_CLASS_FULL (composite_in_over_argb,
* @i_n: DEST
* @s1_1: SRC
* @s2_n: MASK
- * @n:
+ * @n: number of elements
*
* Performs the compositing operation DEST = (SRC IN MASK) OVER DEST,
* for a constant SRC.
@@ -208,7 +208,7 @@ OIL_DEFINE_CLASS_FULL (composite_in_over_argb_const_src,
* @i_n: DEST
* @s1_n: SRC
* @s2_1: MASK
- * @n:
+ * @n: number of elements
*
* Performs the compositing operation DEST = (SRC IN MASK) OVER DEST,
* for a constant MASK.
@@ -217,10 +217,10 @@ OIL_DEFINE_CLASS_FULL (composite_in_over_argb_const_mask,
"uint32_t *i_n, uint32_t *s1_n, uint8_t *s2_1, int n",
composite_test);
/**
- * oil_composite_over_argb_u8:
+ * oil_composite_over_u8:
* @i_n: DEST
* @s1_n: SRC
- * @n:
+ * @n: number of elements
*
* Performs the compositing operation DEST = SRC OVER DEST.
*/
@@ -228,10 +228,10 @@ OIL_DEFINE_CLASS_FULL (composite_over_u8,
"uint8_t *i_n, uint8_t *s1_n, int n",
composite_test);
/**
- * oil_composite_add_argb_u8:
+ * oil_composite_add_u8:
* @i_n: DEST
* @s1_n: SRC
- * @n:
+ * @n: number of elements
*
* Performs the compositing operation DEST = SRC ADD DEST.
*/
diff --git a/liboil/ref/conv.c b/liboil/ref/conv.c
index 9de8fde..099bee3 100644
--- a/liboil/ref/conv.c
+++ b/liboil/ref/conv.c
@@ -35,6 +35,30 @@
#include <stdlib.h>
+/**
+ * SECTION:liboilfuncs-conv
+ * @short_description: Type conversion
+ *
+ * The functions in this section perform type conversion.
+ *
+ * The <i>conv</i> functions convert value from the source type to
+ * the destination type. Conversion of values outside the destination
+ * range is undefined and may vary between implementations.
+ *
+ * The <i>clipconv</i> functions convert values from the source
+ * type to the destination type. Conversion of values outside the
+ * destination range are saturated to the destination range.
+ *
+ * The <i>scaleconv</i> functions multiply the source values by a
+ * constant factor before converting to the destination type. Conversion
+ * of values outside the destination range is undefined and may vary
+ * between implementations.
+ *
+ * Conversion of values from floating point types to integer types
+ * is done using a round-to-nearest policy. Rounding of half-integers
+ * is undefined and may vary between implementations.
+ */
+
#define CONV_DEFINE_REF_CAST(desttype,srctype) \
static void conv_ ## desttype ## _ ## srctype ## _ref ( \
@@ -347,3 +371,1567 @@ SCALECONV_DEFINE_REF_CAST(f64,u16);
SCALECONV_DEFINE_REF_CAST(f64,s32);
SCALECONV_DEFINE_REF_CAST(f64,u32);
+/**
+ * oil_conv_f32_f64:
+ * @dest:
+ * @dstr:
+ * @src:
+ * @sstr:
+ *
+ * Converts elements in from the source type
+ * to the destination type and places the result in .
+ * Values outside the destination range are undefined
+ * and implementation dependent.
+ * See the comments at the beginning of this section.
+ */
+
+/**
+ * oil_conv_f32_s16:
+ * @dest:
+ * @dstr:
+ * @src:
+ * @sstr:
+ *
+ * Converts elements in from the source type
+ * to the destination type and places the result in .
+ * Values outside the destination range are undefined
+ * and implementation dependent.
+ * See the comments at the beginning of this section.
+ */
+
+/**
+ * oil_conv_f32_s32:
+ * @dest:
+ * @dstr:
+ * @src:
+ * @sstr:
+ *
+ * Converts elements in from the source type
+ * to the destination type and places the result in .
+ * Values outside the destination range are undefined
+ * and implementation dependent.
+ * See the comments at the beginning of this section.
+ */
+
+/**
+ * oil_conv_f32_s8:
+ * @dest:
+ * @dstr:
+ * @src:
+ * @sstr:
+ *
+ * Converts elements in from the source type
+ * to the destination type and places the result in .
+ * Values outside the destination range are undefined
+ * and implementation dependent.
+ * See the comments at the beginning of this section.
+ */
+
+/**
+ * oil_conv_f32_u16:
+ * @dest:
+ * @dstr:
+ * @src:
+ * @sstr:
+ *
+ * Converts elements in from the source type
+ * to the destination type and places the result in .
+ * Values outside the destination range are undefined
+ * and implementation dependent.
+ * See the comments at the beginning of this section.
+ */
+
+/**
+ * oil_conv_f32_u32:
+ * @dest:
+ * @dstr:
+ * @src:
+ * @sstr:
+ *
+ * Converts elements in from the source type
+ * to the destination type and places the result in .
+ * Values outside the destination range are undefined
+ * and implementation dependent.
+ * See the comments at the beginning of this section.
+ */
+
+/**
+ * oil_conv_f32_u8:
+ * @dest:
+ * @dstr:
+ * @src:
+ * @sstr:
+ *
+ * Converts elements in from the source type
+ * to the destination type and places the result in .
+ * Values outside the destination range are undefined
+ * and implementation dependent.
+ * See the comments at the beginning of this section.
+ */
+
+/**
+ * oil_conv_f64_f32:
+ * @dest:
+ * @dstr:
+ * @src:
+ * @sstr:
+ *
+ * Converts elements in from the source type
+ * to the destination type and places the result in .
+ * Values outside the destination range are undefined
+ * and implementation dependent.
+ * See the comments at the beginning of this section.
+ */
+
+/**
+ * oil_conv_f64_s16:
+ * @dest:
+ * @dstr:
+ * @src:
+ * @sstr:
+ *
+ * Converts elements in from the source type
+ * to the destination type and places the result in .
+ * Values outside the destination range are undefined
+ * and implementation dependent.
+ * See the comments at the beginning of this section.
+ */
+
+/**
+ * oil_conv_f64_s32:
+ * @dest:
+ * @dstr:
+ * @src:
+ * @sstr:
+ *
+ * Converts elements in from the source type
+ * to the destination type and places the result in .
+ * Values outside the destination range are undefined
+ * and implementation dependent.
+ * See the comments at the beginning of this section.
+ */
+
+/**
+ * oil_conv_f64_s8:
+ * @dest:
+ * @dstr:
+ * @src:
+ * @sstr:
+ *
+ * Converts elements in from the source type
+ * to the destination type and places the result in .
+ * Values outside the destination range are undefined
+ * and implementation dependent.
+ * See the comments at the beginning of this section.
+ */
+
+/**
+ * oil_conv_f64_u16:
+ * @dest:
+ * @dstr:
+ * @src:
+ * @sstr:
+ *
+ * Converts elements in from the source type
+ * to the destination type and places the result in .
+ * Values outside the destination range are undefined
+ * and implementation dependent.
+ * See the comments at the beginning of this section.
+ */
+
+/**
+ * oil_conv_f64_u32:
+ * @dest:
+ * @dstr:
+ * @src:
+ * @sstr:
+ *
+ * Converts elements in from the source type
+ * to the destination type and places the result in .
+ * Values outside the destination range are undefined
+ * and implementation dependent.
+ * See the comments at the beginning of this section.
+ */
+
+/**
+ * oil_conv_f64_u8:
+ * @dest:
+ * @dstr:
+ * @src:
+ * @sstr:
+ *
+ * Converts elements in from the source type
+ * to the destination type and places the result in .
+ * Values outside the destination range are undefined
+ * and implementation dependent.
+ * See the comments at the beginning of this section.
+ */
+
+/**
+ * oil_conv_s16_f32:
+ * @dest:
+ * @dstr:
+ * @src:
+ * @sstr:
+ *
+ * Converts elements in from the source type
+ * to the destination type and places the result in .
+ * Values outside the destination range are undefined
+ * and implementation dependent.
+ * See the comments at the beginning of this section.
+ */
+
+/**
+ * oil_conv_s16_f64:
+ * @dest:
+ * @dstr:
+ * @src:
+ * @sstr:
+ *
+ * Converts elements in from the source type
+ * to the destination type and places the result in .
+ * Values outside the destination range are undefined
+ * and implementation dependent.
+ * See the comments at the beginning of this section.
+ */
+
+/**
+ * oil_conv_s16_s32:
+ * @dest:
+ * @dstr:
+ * @src:
+ * @sstr:
+ *
+ * Converts elements in from the source type
+ * to the destination type and places the result in .
+ * Values outside the destination range are undefined
+ * and implementation dependent.
+ * See the comments at the beginning of this section.
+ */
+
+/**
+ * oil_conv_s16_s8:
+ * @dest:
+ * @dstr:
+ * @src:
+ * @sstr:
+ *
+ * Converts elements in from the source type
+ * to the destination type and places the result in .
+ * Values outside the destination range are undefined
+ * and implementation dependent.
+ * See the comments at the beginning of this section.
+ */
+
+/**
+ * oil_conv_s16_u16:
+ * @dest:
+ * @dstr:
+ * @src:
+ * @sstr:
+ *
+ * Converts elements in from the source type
+ * to the destination type and places the result in .
+ * Values outside the destination range are undefined
+ * and implementation dependent.
+ * See the comments at the beginning of this section.
+ */
+
+/**
+ * oil_conv_s16_u32:
+ * @dest:
+ * @dstr:
+ * @src:
+ * @sstr:
+ *
+ * Converts elements in from the source type
+ * to the destination type and places the result in .
+ * Values outside the destination range are undefined
+ * and implementation dependent.
+ * See the comments at the beginning of this section.
+ */
+
+/**
+ * oil_conv_s16_u8:
+ * @dest:
+ * @dstr:
+ * @src:
+ * @sstr:
+ *
+ * Converts elements in from the source type
+ * to the destination type and places the result in .
+ * Values outside the destination range are undefined
+ * and implementation dependent.
+ * See the comments at the beginning of this section.
+ */
+
+/**
+ * oil_conv_s32_f32:
+ * @dest:
+ * @dstr:
+ * @src:
+ * @sstr:
+ *
+ * Converts elements in from the source type
+ * to the destination type and places the result in .
+ * Values outside the destination range are undefined
+ * and implementation dependent.
+ * See the comments at the beginning of this section.
+ */
+
+/**
+ * oil_conv_s32_f64:
+ * @dest:
+ * @dstr:
+ * @src:
+ * @sstr:
+ *
+ * Converts elements in from the source type
+ * to the destination type and places the result in .
+ * Values outside the destination range are undefined
+ * and implementation dependent.
+ * See the comments at the beginning of this section.
+ */
+
+/**
+ * oil_conv_s32_s16:
+ * @dest:
+ * @dstr:
+ * @src:
+ * @sstr:
+ *
+ * Converts elements in from the source type
+ * to the destination type and places the result in .
+ * Values outside the destination range are undefined
+ * and implementation dependent.
+ * See the comments at the beginning of this section.
+ */
+
+/**
+ * oil_conv_s32_s8:
+ * @dest:
+ * @dstr:
+ * @src:
+ * @sstr:
+ *
+ * Converts elements in from the source type
+ * to the destination type and places the result in .
+ * Values outside the destination range are undefined
+ * and implementation dependent.
+ * See the comments at the beginning of this section.
+ */
+
+/**
+ * oil_conv_s32_u16:
+ * @dest:
+ * @dstr:
+ * @src:
+ * @sstr:
+ *
+ * Converts elements in from the source type
+ * to the destination type and places the result in .
+ * Values outside the destination range are undefined
+ * and implementation dependent.
+ * See the comments at the beginning of this section.
+ */
+
+/**
+ * oil_conv_s32_u32:
+ * @dest:
+ * @dstr:
+ * @src:
+ * @sstr:
+ *
+ * Converts elements in from the source type
+ * to the destination type and places the result in .
+ * Values outside the destination range are undefined
+ * and implementation dependent.
+ * See the comments at the beginning of this section.
+ */
+
+/**
+ * oil_conv_s32_u8:
+ * @dest:
+ * @dstr:
+ * @src:
+ * @sstr:
+ *
+ * Converts elements in from the source type
+ * to the destination type and places the result in .
+ * Values outside the destination range are undefined
+ * and implementation dependent.
+ * See the comments at the beginning of this section.
+ */
+
+/**
+ * oil_conv_s8_f32:
+ * @dest:
+ * @dstr:
+ * @src:
+ * @sstr:
+ *
+ * Converts elements in from the source type
+ * to the destination type and places the result in .
+ * Values outside the destination range are undefined
+ * and implementation dependent.
+ * See the comments at the beginning of this section.
+ */
+
+/**
+ * oil_conv_s8_f64:
+ * @dest:
+ * @dstr:
+ * @src:
+ * @sstr:
+ *
+ * Converts elements in from the source type
+ * to the destination type and places the result in .
+ * Values outside the destination range are undefined
+ * and implementation dependent.
+ * See the comments at the beginning of this section.
+ */
+
+/**
+ * oil_conv_s8_s16:
+ * @dest:
+ * @dstr:
+ * @src:
+ * @sstr:
+ *
+ * Converts elements in from the source type
+ * to the destination type and places the result in .
+ * Values outside the destination range are undefined
+ * and implementation dependent.
+ * See the comments at the beginning of this section.
+ */
+
+/**
+ * oil_conv_s8_s32:
+ * @dest:
+ * @dstr:
+ * @src:
+ * @sstr:
+ *
+ * Converts elements in from the source type
+ * to the destination type and places the result in .
+ * Values outside the destination range are undefined
+ * and implementation dependent.
+ * See the comments at the beginning of this section.
+ */
+
+/**
+ * oil_conv_s8_u16:
+ * @dest:
+ * @dstr:
+ * @src:
+ * @sstr:
+ *
+ * Converts elements in from the source type
+ * to the destination type and places the result in .
+ * Values outside the destination range are undefined
+ * and implementation dependent.
+ * See the comments at the beginning of this section.
+ */
+
+/**
+ * oil_conv_s8_u32:
+ * @dest:
+ * @dstr:
+ * @src:
+ * @sstr:
+ *
+ * Converts elements in from the source type
+ * to the destination type and places the result in .
+ * Values outside the destination range are undefined
+ * and implementation dependent.
+ * See the comments at the beginning of this section.
+ */
+
+/**
+ * oil_conv_s8_u8:
+ * @dest:
+ * @dstr:
+ * @src:
+ * @sstr:
+ *
+ * Converts elements in from the source type
+ * to the destination type and places the result in .
+ * Values outside the destination range are undefined
+ * and implementation dependent.
+ * See the comments at the beginning of this section.
+ */
+
+/**
+ * oil_conv_u16_f32:
+ * @dest:
+ * @dstr:
+ * @src:
+ * @sstr:
+ *
+ * Converts elements in from the source type
+ * to the destination type and places the result in .
+ * Values outside the destination range are undefined
+ * and implementation dependent.
+ * See the comments at the beginning of this section.
+ */
+
+/**
+ * oil_conv_u16_f64:
+ * @dest:
+ * @dstr:
+ * @src:
+ * @sstr:
+ *
+ * Converts elements in from the source type
+ * to the destination type and places the result in .
+ * Values outside the destination range are undefined
+ * and implementation dependent.
+ * See the comments at the beginning of this section.
+ */
+
+/**
+ * oil_conv_u16_s16:
+ * @dest:
+ * @dstr:
+ * @src:
+ * @sstr:
+ *
+ * Converts elements in from the source type
+ * to the destination type and places the result in .
+ * Values outside the destination range are undefined
+ * and implementation dependent.
+ * See the comments at the beginning of this section.
+ */
+
+/**
+ * oil_conv_u16_s32:
+ * @dest:
+ * @dstr:
+ * @src:
+ * @sstr:
+ *
+ * Converts elements in from the source type
+ * to the destination type and places the result in .
+ * Values outside the destination range are undefined
+ * and implementation dependent.
+ * See the comments at the beginning of this section.
+ */
+
+/**
+ * oil_conv_u16_s8:
+ * @dest:
+ * @dstr:
+ * @src:
+ * @sstr:
+ *
+ * Converts elements in from the source type
+ * to the destination type and places the result in .
+ * Values outside the destination range are undefined
+ * and implementation dependent.
+ * See the comments at the beginning of this section.
+ */
+
+/**
+ * oil_conv_u16_u32:
+ * @dest:
+ * @dstr:
+ * @src:
+ * @sstr:
+ *
+ * Converts elements in from the source type
+ * to the destination type and places the result in .
+ * Values outside the destination range are undefined
+ * and implementation dependent.
+ * See the comments at the beginning of this section.
+ */
+
+/**
+ * oil_conv_u16_u8:
+ * @dest:
+ * @dstr:
+ * @src:
+ * @sstr:
+ *
+ * Converts elements in from the source type
+ * to the destination type and places the result in .
+ * Values outside the destination range are undefined
+ * and implementation dependent.
+ * See the comments at the beginning of this section.
+ */
+
+/**
+ * oil_conv_u32_f32:
+ * @dest:
+ * @dstr:
+ * @src:
+ * @sstr:
+ *
+ * Converts elements in from the source type
+ * to the destination type and places the result in .
+ * Values outside the destination range are undefined
+ * and implementation dependent.
+ * See the comments at the beginning of this section.
+ */
+
+/**
+ * oil_conv_u32_f64:
+ * @dest:
+ * @dstr:
+ * @src:
+ * @sstr:
+ *
+ * Converts elements in from the source type
+ * to the destination type and places the result in .
+ * Values outside the destination range are undefined
+ * and implementation dependent.
+ * See the comments at the beginning of this section.
+ */
+
+/**
+ * oil_conv_u32_s16:
+ * @dest:
+ * @dstr:
+ * @src:
+ * @sstr:
+ *
+ * Converts elements in from the source type
+ * to the destination type and places the result in .
+ * Values outside the destination range are undefined
+ * and implementation dependent.
+ * See the comments at the beginning of this section.
+ */
+
+/**
+ * oil_conv_u32_s32:
+ * @dest:
+ * @dstr:
+ * @src:
+ * @sstr:
+ *
+ * Converts elements in from the source type
+ * to the destination type and places the result in .
+ * Values outside the destination range are undefined
+ * and implementation dependent.
+ * See the comments at the beginning of this section.
+ */
+
+/**
+ * oil_conv_u32_s8:
+ * @dest:
+ * @dstr:
+ * @src:
+ * @sstr:
+ *
+ * Converts elements in from the source type
+ * to the destination type and places the result in .
+ * Values outside the destination range are undefined
+ * and implementation dependent.
+ * See the comments at the beginning of this section.
+ */
+
+/**
+ * oil_conv_u32_u16:
+ * @dest:
+ * @dstr:
+ * @src:
+ * @sstr:
+ *
+ * Converts elements in from the source type
+ * to the destination type and places the result in .
+ * Values outside the destination range are undefined
+ * and implementation dependent.
+ * See the comments at the beginning of this section.
+ */
+
+/**
+ * oil_conv_u32_u8:
+ * @dest:
+ * @dstr:
+ * @src:
+ * @sstr:
+ *
+ * Converts elements in from the source type
+ * to the destination type and places the result in .
+ * Values outside the destination range are undefined
+ * and implementation dependent.
+ * See the comments at the beginning of this section.
+ */
+
+/**
+ * oil_conv_u8_f32:
+ * @dest:
+ * @dstr:
+ * @src:
+ * @sstr:
+ *
+ * Converts elements in from the source type
+ * to the destination type and places the result in .
+ * Values outside the destination range are undefined
+ * and implementation dependent.
+ * See the comments at the beginning of this section.
+ */
+
+/**
+ * oil_conv_u8_f64:
+ * @dest:
+ * @dstr:
+ * @src:
+ * @sstr:
+ *
+ * Converts elements in from the source type
+ * to the destination type and places the result in .
+ * Values outside the destination range are undefined
+ * and implementation dependent.
+ * See the comments at the beginning of this section.
+ */
+
+/**
+ * oil_conv_u8_s16:
+ * @dest:
+ * @dstr:
+ * @src:
+ * @sstr:
+ *
+ * Converts elements in from the source type
+ * to the destination type and places the result in .
+ * Values outside the destination range are undefined
+ * and implementation dependent.
+ * See the comments at the beginning of this section.
+ */
+
+/**
+ * oil_conv_u8_s32:
+ * @dest:
+ * @dstr:
+ * @src:
+ * @sstr:
+ *
+ * Converts elements in from the source type
+ * to the destination type and places the result in .
+ * Values outside the destination range are undefined
+ * and implementation dependent.
+ * See the comments at the beginning of this section.
+ */
+
+/**
+ * oil_conv_u8_s8:
+ * @dest:
+ * @dstr:
+ * @src:
+ * @sstr:
+ *
+ * Converts elements in from the source type
+ * to the destination type and places the result in .
+ * Values outside the destination range are undefined
+ * and implementation dependent.
+ * See the comments at the beginning of this section.
+ */
+
+/**
+ * oil_conv_u8_u16:
+ * @dest:
+ * @dstr:
+ * @src:
+ * @sstr:
+ *
+ * Converts elements in from the source type
+ * to the destination type and places the result in .
+ * Values outside the destination range are undefined
+ * and implementation dependent.
+ * See the comments at the beginning of this section.
+ */
+
+/**
+ * oil_conv_u8_u32:
+ * @dest:
+ * @dstr:
+ * @src:
+ * @sstr:
+ *
+ * Converts elements in from the source type
+ * to the destination type and places the result in .
+ * Values outside the destination range are undefined
+ * and implementation dependent.
+ * See the comments at the beginning of this section.
+ */
+
+/**
+ * oil_clipconv_s16_f32:
+ * @dest:
+ * @dstr:
+ * @src:
+ * @sstr:
+ *
+ * Converts elements in from the source type
+ * to the destination type and places the result in .
+ * Values outside the destination range are clipped to
+ * the destination range.
+ * See the comments at the beginning of this section.
+ */
+
+/**
+ * oil_clipconv_s16_f64:
+ * @dest:
+ * @dstr:
+ * @src:
+ * @sstr:
+ *
+ * Converts elements in from the source type
+ * to the destination type and places the result in .
+ * Values outside the destination range are clipped to
+ * the destination range.
+ * See the comments at the beginning of this section.
+ */
+
+/**
+ * oil_clipconv_s16_s32:
+ * @dest:
+ * @dstr:
+ * @src:
+ * @sstr:
+ *
+ * Converts elements in from the source type
+ * to the destination type and places the result in .
+ * Values outside the destination range are clipped to
+ * the destination range.
+ * See the comments at the beginning of this section.
+ */
+
+/**
+ * oil_clipconv_s16_u16:
+ * @dest:
+ * @dstr:
+ * @src:
+ * @sstr:
+ *
+ * Converts elements in from the source type
+ * to the destination type and places the result in .
+ * Values outside the destination range are clipped to
+ * the destination range.
+ * See the comments at the beginning of this section.
+ */
+
+/**
+ * oil_clipconv_s16_u32:
+ * @dest:
+ * @dstr:
+ * @src:
+ * @sstr:
+ *
+ * Converts elements in from the source type
+ * to the destination type and places the result in .
+ * Values outside the destination range are clipped to
+ * the destination range.
+ * See the comments at the beginning of this section.
+ */
+
+/**
+ * oil_clipconv_s32_f32:
+ * @dest:
+ * @dstr:
+ * @src:
+ * @sstr:
+ *
+ * Converts elements in from the source type
+ * to the destination type and places the result in .
+ * Values outside the destination range are clipped to
+ * the destination range.
+ * See the comments at the beginning of this section.
+ */
+
+/**
+ * oil_clipconv_s32_f64:
+ * @dest:
+ * @dstr:
+ * @src:
+ * @sstr:
+ *
+ * Converts elements in from the source type
+ * to the destination type and places the result in .
+ * Values outside the destination range are clipped to
+ * the destination range.
+ * See the comments at the beginning of this section.
+ */
+
+/**
+ * oil_clipconv_s32_u32:
+ * @dest:
+ * @dstr:
+ * @src:
+ * @sstr:
+ *
+ * Converts elements in from the source type
+ * to the destination type and places the result in .
+ * Values outside the destination range are clipped to
+ * the destination range.
+ * See the comments at the beginning of this section.
+ */
+
+/**
+ * oil_clipconv_s8_f32:
+ * @dest:
+ * @dstr:
+ * @src:
+ * @sstr:
+ *
+ * Converts elements in from the source type
+ * to the destination type and places the result in .
+ * Values outside the destination range are clipped to
+ * the destination range.
+ * See the comments at the beginning of this section.
+ */
+
+/**
+ * oil_clipconv_s8_f64:
+ * @dest:
+ * @dstr:
+ * @src:
+ * @sstr:
+ *
+ * Converts elements in from the source type
+ * to the destination type and places the result in .
+ * Values outside the destination range are clipped to
+ * the destination range.
+ * See the comments at the beginning of this section.
+ */
+
+/**
+ * oil_clipconv_s8_s16:
+ * @dest:
+ * @dstr:
+ * @src:
+ * @sstr:
+ *
+ * Converts elements in from the source type
+ * to the destination type and places the result in .
+ * Values outside the destination range are clipped to
+ * the destination range.
+ * See the comments at the beginning of this section.
+ */
+
+/**
+ * oil_clipconv_s8_s32:
+ * @dest:
+ * @dstr:
+ * @src:
+ * @sstr:
+ *
+ * Converts elements in from the source type
+ * to the destination type and places the result in .
+ * Values outside the destination range are clipped to
+ * the destination range.
+ * See the comments at the beginning of this section.
+ */
+
+/**
+ * oil_clipconv_s8_u16:
+ * @dest:
+ * @dstr:
+ * @src:
+ * @sstr:
+ *
+ * Converts elements in from the source type
+ * to the destination type and places the result in .
+ * Values outside the destination range are clipped to
+ * the destination range.
+ * See the comments at the beginning of this section.
+ */
+
+/**
+ * oil_clipconv_s8_u32:
+ * @dest:
+ * @dstr:
+ * @src:
+ * @sstr:
+ *
+ * Converts elements in from the source type
+ * to the destination type and places the result in .
+ * Values outside the destination range are clipped to
+ * the destination range.
+ * See the comments at the beginning of this section.
+ */
+
+/**
+ * oil_clipconv_s8_u8:
+ * @dest:
+ * @dstr:
+ * @src:
+ * @sstr:
+ *
+ * Converts elements in from the source type
+ * to the destination type and places the result in .
+ * Values outside the destination range are clipped to
+ * the destination range.
+ * See the comments at the beginning of this section.
+ */
+
+/**
+ * oil_clipconv_u16_f32:
+ * @dest:
+ * @dstr:
+ * @src:
+ * @sstr:
+ *
+ * Converts elements in from the source type
+ * to the destination type and places the result in .
+ * Values outside the destination range are clipped to
+ * the destination range.
+ * See the comments at the beginning of this section.
+ */
+
+/**
+ * oil_clipconv_u16_f64:
+ * @dest:
+ * @dstr:
+ * @src:
+ * @sstr:
+ *
+ * Converts elements in from the source type
+ * to the destination type and places the result in .
+ * Values outside the destination range are clipped to
+ * the destination range.
+ * See the comments at the beginning of this section.
+ */
+
+/**
+ * oil_clipconv_u16_s16:
+ * @dest:
+ * @dstr:
+ * @src:
+ * @sstr:
+ *
+ * Converts elements in from the source type
+ * to the destination type and places the result in .
+ * Values outside the destination range are clipped to
+ * the destination range.
+ * See the comments at the beginning of this section.
+ */
+
+/**
+ * oil_clipconv_u16_s32:
+ * @dest:
+ * @dstr:
+ * @src:
+ * @sstr:
+ *
+ * Converts elements in from the source type
+ * to the destination type and places the result in .
+ * Values outside the destination range are clipped to
+ * the destination range.
+ * See the comments at the beginning of this section.
+ */
+
+/**
+ * oil_clipconv_u16_u32:
+ * @dest:
+ * @dstr:
+ * @src:
+ * @sstr:
+ *
+ * Converts elements in from the source type
+ * to the destination type and places the result in .
+ * Values outside the destination range are clipped to
+ * the destination range.
+ * See the comments at the beginning of this section.
+ */
+
+/**
+ * oil_clipconv_u32_f32:
+ * @dest:
+ * @dstr:
+ * @src:
+ * @sstr:
+ *
+ * Converts elements in from the source type
+ * to the destination type and places the result in .
+ * Values outside the destination range are clipped to
+ * the destination range.
+ * See the comments at the beginning of this section.
+ */
+
+/**
+ * oil_clipconv_u32_f64:
+ * @dest:
+ * @dstr:
+ * @src:
+ * @sstr:
+ *
+ * Converts elements in from the source type
+ * to the destination type and places the result in .
+ * Values outside the destination range are clipped to
+ * the destination range.
+ * See the comments at the beginning of this section.
+ */
+
+/**
+ * oil_clipconv_u32_s32:
+ * @dest:
+ * @dstr:
+ * @src:
+ * @sstr:
+ *
+ * Converts elements in from the source type
+ * to the destination type and places the result in .
+ * Values outside the destination range are clipped to
+ * the destination range.
+ * See the comments at the beginning of this section.
+ */
+
+/**
+ * oil_clipconv_u8_f32:
+ * @dest:
+ * @dstr:
+ * @src:
+ * @sstr:
+ *
+ * Converts elements in from the source type
+ * to the destination type and places the result in .
+ * Values outside the destination range are clipped to
+ * the destination range.
+ * See the comments at the beginning of this section.
+ */
+
+/**
+ * oil_clipconv_u8_f64:
+ * @dest:
+ * @dstr:
+ * @src:
+ * @sstr:
+ *
+ * Converts elements in from the source type
+ * to the destination type and places the result in .
+ * Values outside the destination range are clipped to
+ * the destination range.
+ * See the comments at the beginning of this section.
+ */
+
+/**
+ * oil_clipconv_u8_s16:
+ * @dest:
+ * @dstr:
+ * @src:
+ * @sstr:
+ *
+ * Converts elements in from the source type
+ * to the destination type and places the result in .
+ * Values outside the destination range are clipped to
+ * the destination range.
+ * See the comments at the beginning of this section.
+ */
+
+/**
+ * oil_clipconv_u8_s32:
+ * @dest:
+ * @dstr:
+ * @src:
+ * @sstr:
+ *
+ * Converts elements in from the source type
+ * to the destination type and places the result in .
+ * Values outside the destination range are clipped to
+ * the destination range.
+ * See the comments at the beginning of this section.
+ */
+
+/**
+ * oil_clipconv_u8_s8:
+ * @dest:
+ * @dstr:
+ * @src:
+ * @sstr:
+ *
+ * Converts elements in from the source type
+ * to the destination type and places the result in .
+ * Values outside the destination range are clipped to
+ * the destination range.
+ * See the comments at the beginning of this section.
+ */
+
+/**
+ * oil_clipconv_u8_u16:
+ * @dest:
+ * @dstr:
+ * @src:
+ * @sstr:
+ *
+ * Converts elements in from the source type
+ * to the destination type and places the result in .
+ * Values outside the destination range are clipped to
+ * the destination range.
+ * See the comments at the beginning of this section.
+ */
+
+/**
+ * oil_clipconv_u8_u32:
+ * @dest:
+ * @dstr:
+ * @src:
+ * @sstr:
+ *
+ * Converts elements in from the source type
+ * to the destination type and places the result in .
+ * Values outside the destination range are clipped to
+ * the destination range.
+ * See the comments at the beginning of this section.
+ */
+
+/**
+ * oil_scaleconv_f32_s16:
+ * @dest:
+ * @src:
+ # @s2_1:
+ # @s3_1:
+ *
+ * Multiplies elements in by and adds and then
+ * converts the result
+ * to the destination type and places the result in .
+ * Values outside the destination range are undefined and
+ * implementation dependent.
+ * See the comments at the beginning of this section.
+ */
+
+/**
+ * oil_scaleconv_f32_s32:
+ * @dest:
+ * @src:
+ # @s2_1:
+ # @s3_1:
+ *
+ * Multiplies elements in by and adds and then
+ * converts the result
+ * to the destination type and places the result in .
+ * Values outside the destination range are undefined and
+ * implementation dependent.
+ * See the comments at the beginning of this section.
+ */
+
+/**
+ * oil_scaleconv_f32_s8:
+ * @dest:
+ * @src:
+ # @s2_1:
+ # @s3_1:
+ *
+ * Multiplies elements in by and adds and then
+ * converts the result
+ * to the destination type and places the result in .
+ * Values outside the destination range are undefined and
+ * implementation dependent.
+ * See the comments at the beginning of this section.
+ */
+
+/**
+ * oil_scaleconv_f32_u16:
+ * @dest:
+ * @src:
+ # @s2_1:
+ # @s3_1:
+ *
+ * Multiplies elements in by and adds and then
+ * converts the result
+ * to the destination type and places the result in .
+ * Values outside the destination range are undefined and
+ * implementation dependent.
+ * See the comments at the beginning of this section.
+ */
+
+/**
+ * oil_scaleconv_f32_u32:
+ * @dest:
+ * @src:
+ # @s2_1:
+ # @s3_1:
+ *
+ * Multiplies elements in by and adds and then
+ * converts the result
+ * to the destination type and places the result in .
+ * Values outside the destination range are undefined and
+ * implementation dependent.
+ * See the comments at the beginning of this section.
+ */
+
+/**
+ * oil_scaleconv_f32_u8:
+ * @dest:
+ * @src:
+ # @s2_1:
+ # @s3_1:
+ *
+ * Multiplies elements in by and adds and then
+ * converts the result
+ * to the destination type and places the result in .
+ * Values outside the destination range are undefined and
+ * implementation dependent.
+ * See the comments at the beginning of this section.
+ */
+
+/**
+ * oil_scaleconv_f64_s16:
+ * @dest:
+ * @src:
+ # @s2_1:
+ # @s3_1:
+ *
+ * Multiplies elements in by and adds and then
+ * converts the result
+ * to the destination type and places the result in .
+ * Values outside the destination range are undefined and
+ * implementation dependent.
+ * See the comments at the beginning of this section.
+ */
+
+/**
+ * oil_scaleconv_f64_s32:
+ * @dest:
+ * @src:
+ # @s2_1:
+ # @s3_1:
+ *
+ * Multiplies elements in by and adds and then
+ * converts the result
+ * to the destination type and places the result in .
+ * Values outside the destination range are undefined and
+ * implementation dependent.
+ * See the comments at the beginning of this section.
+ */
+
+/**
+ * oil_scaleconv_f64_s8:
+ * @dest:
+ * @src:
+ # @s2_1:
+ # @s3_1:
+ *
+ * Multiplies elements in by and adds and then
+ * converts the result
+ * to the destination type and places the result in .
+ * Values outside the destination range are undefined and
+ * implementation dependent.
+ * See the comments at the beginning of this section.
+ */
+
+/**
+ * oil_scaleconv_f64_u16:
+ * @dest:
+ * @src:
+ # @s2_1:
+ # @s3_1:
+ *
+ * Multiplies elements in by and adds and then
+ * converts the result
+ * to the destination type and places the result in .
+ * Values outside the destination range are undefined and
+ * implementation dependent.
+ * See the comments at the beginning of this section.
+ */
+
+/**
+ * oil_scaleconv_f64_u32:
+ * @dest:
+ * @src:
+ # @s2_1:
+ # @s3_1:
+ *
+ * Multiplies elements in by and adds and then
+ * converts the result
+ * to the destination type and places the result in .
+ * Values outside the destination range are undefined and
+ * implementation dependent.
+ * See the comments at the beginning of this section.
+ */
+
+/**
+ * oil_scaleconv_f64_u8:
+ * @dest:
+ * @src:
+ # @s2_1:
+ # @s3_1:
+ *
+ * Multiplies elements in by and adds and then
+ * converts the result
+ * to the destination type and places the result in .
+ * Values outside the destination range are undefined and
+ * implementation dependent.
+ * See the comments at the beginning of this section.
+ */
+
+/**
+ * oil_scaleconv_s16_f32:
+ * @dest:
+ * @src:
+ # @s2_1:
+ # @s3_1:
+ *
+ * Multiplies elements in by and adds and then
+ * converts the result
+ * to the destination type and places the result in .
+ * Values outside the destination range are undefined and
+ * implementation dependent.
+ * See the comments at the beginning of this section.
+ */
+
+/**
+ * oil_scaleconv_s16_f64:
+ * @dest:
+ * @src:
+ # @s2_1:
+ # @s3_1:
+ *
+ * Multiplies elements in by and adds and then
+ * converts the result
+ * to the destination type and places the result in .
+ * Values outside the destination range are undefined and
+ * implementation dependent.
+ * See the comments at the beginning of this section.
+ */
+
+/**
+ * oil_scaleconv_s32_f32:
+ * @dest:
+ * @src:
+ # @s2_1:
+ # @s3_1:
+ *
+ * Multiplies elements in by and adds and then
+ * converts the result
+ * to the destination type and places the result in .
+ * Values outside the destination range are undefined and
+ * implementation dependent.
+ * See the comments at the beginning of this section.
+ */
+
+/**
+ * oil_scaleconv_s32_f64:
+ * @dest:
+ * @src:
+ # @s2_1:
+ # @s3_1:
+ *
+ * Multiplies elements in by and adds and then
+ * converts the result
+ * to the destination type and places the result in .
+ * Values outside the destination range are undefined and
+ * implementation dependent.
+ * See the comments at the beginning of this section.
+ */
+
+/**
+ * oil_scaleconv_s8_f32:
+ * @dest:
+ * @src:
+ # @s2_1:
+ # @s3_1:
+ *
+ * Multiplies elements in by and adds and then
+ * converts the result
+ * to the destination type and places the result in .
+ * Values outside the destination range are undefined and
+ * implementation dependent.
+ * See the comments at the beginning of this section.
+ */
+
+/**
+ * oil_scaleconv_s8_f64:
+ * @dest:
+ * @src:
+ # @s2_1:
+ # @s3_1:
+ *
+ * Multiplies elements in by and adds and then
+ * converts the result
+ * to the destination type and places the result in .
+ * Values outside the destination range are undefined and
+ * implementation dependent.
+ * See the comments at the beginning of this section.
+ */
+
+/**
+ * oil_scaleconv_u16_f32:
+ * @dest:
+ * @src:
+ # @s2_1:
+ # @s3_1:
+ *
+ * Multiplies elements in by and adds and then
+ * converts the result
+ * to the destination type and places the result in .
+ * Values outside the destination range are undefined and
+ * implementation dependent.
+ * See the comments at the beginning of this section.
+ */
+
+/**
+ * oil_scaleconv_u16_f64:
+ * @dest:
+ * @src:
+ # @s2_1:
+ # @s3_1:
+ *
+ * Multiplies elements in by and adds and then
+ * converts the result
+ * to the destination type and places the result in .
+ * Values outside the destination range are undefined and
+ * implementation dependent.
+ * See the comments at the beginning of this section.
+ */
+
+/**
+ * oil_scaleconv_u32_f32:
+ * @dest:
+ * @src:
+ # @s2_1:
+ # @s3_1:
+ *
+ * Multiplies elements in by and adds and then
+ * converts the result
+ * to the destination type and places the result in .
+ * Values outside the destination range are undefined and
+ * implementation dependent.
+ * See the comments at the beginning of this section.
+ */
+
+/**
+ * oil_scaleconv_u32_f64:
+ * @dest:
+ * @src:
+ # @s2_1:
+ # @s3_1:
+ *
+ * Multiplies elements in by and adds and then
+ * converts the result
+ * to the destination type and places the result in .
+ * Values outside the destination range are undefined and
+ * implementation dependent.
+ * See the comments at the beginning of this section.
+ */
+
+/**
+ * oil_scaleconv_u8_f32:
+ * @dest:
+ * @src:
+ # @s2_1:
+ # @s3_1:
+ *
+ * Multiplies elements in by and adds and then
+ * converts the result
+ * to the destination type and places the result in .
+ * Values outside the destination range are undefined and
+ * implementation dependent.
+ * See the comments at the beginning of this section.
+ */
+
+/**
+ * oil_scaleconv_u8_f64:
+ * @dest:
+ * @src:
+ # @s2_1:
+ # @s3_1:
+ *
+ * Multiplies elements in by and adds and then
+ * converts the result
+ * to the destination type and places the result in .
+ * Values outside the destination range are undefined and
+ * implementation dependent.
+ * See the comments at the beginning of this section.
+ */
+
diff --git a/liboil/ref/copy.c b/liboil/ref/copy.c
index 2612e7b..9218bc1 100644
--- a/liboil/ref/copy.c
+++ b/liboil/ref/copy.c
@@ -33,6 +33,14 @@
#include <liboil/liboilfunction.h>
+/**
+ * oil_copy_u8:
+ * @dest: destination array
+ * @src: source array
+ * @n: number of elements
+ *
+ * Copies from source to destination.
+ */
OIL_DEFINE_CLASS (copy_u8, "uint8_t *dest, uint8_t *src, int n");
static void
diff --git a/liboil/ref/copy8x8.c b/liboil/ref/copy8x8.c
index 7b595e9..3cd013e 100644
--- a/liboil/ref/copy8x8.c
+++ b/liboil/ref/copy8x8.c
@@ -31,6 +31,15 @@
#include <liboil/liboilfunction.h>
+/**
+ * oil_copy8x8_u8:
+ * @d_8x8:
+ * @ds:
+ * @s_8x8:
+ * @ss:
+ *
+ * Copies an 8x8 block.
+ */
OIL_DEFINE_CLASS (copy8x8_u8, "uint8_t *d_8x8, int ds, uint8_t *s_8x8, int ss");
static void
diff --git a/liboil/ref/diff8x8.c b/liboil/ref/diff8x8.c
index ee518dc..1984779 100644
--- a/liboil/ref/diff8x8.c
+++ b/liboil/ref/diff8x8.c
@@ -31,12 +31,49 @@
#include <liboil/liboilfunction.h>
+/**
+ * oil_diff8x8_s16_u8:
+ * @d_8x8:
+ * @s1_8x8:
+ * @ss1:
+ * @s2_8x8:
+ * @ss2:
+ *
+ * Calculates the difference of each value in @s1_8x8 and @s2_8x8
+ * and places the result in @d_8x8. Note that the destination type
+ * is larger than the source type.
+ */
OIL_DEFINE_CLASS (diff8x8_s16_u8,
- "int16_t *d_64, uint8_t *s1_8x8, int ss1, uint8_t *s2_8x8, int ss2");
+ "int16_t *d_8x8, uint8_t *s1_8x8, int ss1, uint8_t *s2_8x8, int ss2");
+/**
+ * oil_diff8x8_const128_s16_u8:
+ * @d_8x8:
+ * @s1_8x8:
+ * @ss1:
+ *
+ * Subtracts 128 from each value in @s1_8x8
+ * and places the result in @d_8x8. Note that the destination type
+ * is larger than the source type.
+ */
OIL_DEFINE_CLASS (diff8x8_const128_s16_u8,
- "int16_t *d_64, uint8_t *s1_8x8, int ss1");
+ "int16_t *d_8x8, uint8_t *s1_8x8, int ss1");
+/**
+ * oil_diff8x8_average_s16_u8:
+ * @d_8x8:
+ * @s1_8x8:
+ * @ss1:
+ * @s2_8x8:
+ * @ss2:
+ * @s3_8x8:
+ * @ss3:
+ *
+ * Calculates the difference of each value in @s1_8x8 and the
+ * average of @s2_8x8 and @s3_8x8,
+ * and places the result in @d_8x8. Note that the destination type
+ * is larger than the source type.
+ */
OIL_DEFINE_CLASS (diff8x8_average_s16_u8,
- "int16_t *d_64, uint8_t *s1_8x8, int ss1, uint8_t *s2_8x8, int ss2, uint8_t *s3_8x8, int ss3");
+ "int16_t *d_8x8, uint8_t *s1_8x8, int ss1, uint8_t *s2_8x8, int ss2, uint8_t *s3_8x8, int ss3");
static void
diff8x8_s16_u8_ref (int16_t *dest, uint8_t *src1, int ss1, uint8_t *src2, int ss2)
diff --git a/liboil/ref/diffsquaresum_f64.c b/liboil/ref/diffsquaresum_f64.c
index 427f413..1ec3e66 100644
--- a/liboil/ref/diffsquaresum_f64.c
+++ b/liboil/ref/diffsquaresum_f64.c
@@ -33,6 +33,18 @@
#include <liboil/simdpack/simdpack.h>
#include <math.h>
+/**
+ * oil_diffsquaresum_f64:
+ * @d_1:
+ * @src1:
+ * @sstr1:
+ * @src2:
+ * @sstr2:
+ * @n:
+ *
+ * Calculates the sum of squared differences between @src1 and @src2
+ * and places the result in @d_1.
+ */
OIL_DEFINE_CLASS (diffsquaresum_f64,
"double *d_1, double *src1, int sstr1, double *src2, int sstr2, int n");
diff --git a/liboil/ref/error8x8.c b/liboil/ref/error8x8.c
index 825d335..49c9864 100644
--- a/liboil/ref/error8x8.c
+++ b/liboil/ref/error8x8.c
@@ -32,10 +32,55 @@
#include <liboil/liboilfunction.h>
+/**
+ * oil_err_intra8x8_u8:
+ * @d_1:
+ * @s1_8x8:
+ * @ss1:
+ *
+ * Calculates the sum of squared differences from the mean over
+ * @s1_8x8 and places the result in @d_1. This result is 64 times
+ * the variance of the mean of @s1_8x8.
+ */
OIL_DEFINE_CLASS (err_intra8x8_u8,
"uint32_t *d_1, uint8_t *s1_8x8, int ss1");
+/**
+ * oil_err_inter8x8_u8:
+ * @d_1:
+ * @s1_8x8:
+ * @ss1:
+ * @s2_8x8:
+ * @ss2:
+ *
+ * Calculates an intermediate 8x8 block where each element is the
+ * difference between @s1_8x8 and @s2_8x8.
+ * The sum of squares of the difference of each element in the
+ * intermediate block and the mean of the intermediate block is
+ * placed into @d_1. This result is
+ * equal to 64 times the variance of the mean of the intermediate block.
+ */
OIL_DEFINE_CLASS (err_inter8x8_u8,
"uint32_t *d_1, uint8_t *s1_8x8, int ss1, uint8_t *s2_8x8, int ss2");
+/**
+ * oil_err_inter8x8_u8_avg:
+ * @d_1:
+ * @s1_8x8:
+ * @ss1:
+ * @s2_8x8:
+ * @s3_8x8:
+ * @ss2:
+ *
+ * Calculates an intermediate 8x8 block where each element is the
+ * difference between @s1_8x8 and the average of @s2_8x8 and @s3_8x8.
+ * The sum of squares of the difference of each element in the
+ * intermediate block and the mean of the intermediate block is
+ * placed into @d_1.
+ * This result is 64 times the variance of the mean of the intermediate
+ * block.
+ *
+ * FIXME: This function is broken, since the reference function uses
+ * @ss2 as the stride for both @s2_8x8 and @s3_8x8.
+ */
OIL_DEFINE_CLASS (err_inter8x8_u8_avg,
"uint32_t *d_1, uint8_t *s1_8x8, int ss1, uint8_t *s2_8x8, uint8_t *s3_8x8, int ss2");
diff --git a/liboil/ref/math.c b/liboil/ref/math.c
index e2c4744..9c71d3a 100644
--- a/liboil/ref/math.c
+++ b/liboil/ref/math.c
@@ -35,20 +35,140 @@
#include <liboil/liboilfunction.h>
#include <liboil/liboiltest.h>
+/**
+ * SECTION:liboilfuncs-math
+ * @short_description: Aritmetic operations
+ *
+ */
+
+/**
+ * SECTION:liboilfuncs-math8x8
+ * @short_description: Aritmetic operations on 8x8 blocks
+ *
+ */
+/**
+ * oil_add_f32:
+ * @d: destination
+ * @s1: source 1
+ * @s2: source 2
+ * @n: number of elements
+ *
+ * Adds elements in @s2 and @s1 and places the result in @d.
+ */
OIL_DEFINE_CLASS (add_f32, "float *d, float *s1, float *s2, int n");
+/**
+ * oil_subtract_f32:
+ * @d: destination
+ * @s1: source 1
+ * @s2: source 2
+ * @n: number of elements
+ *
+ * Subtracts elements in @s2 from @s1 and places the result in @d.
+ */
OIL_DEFINE_CLASS (subtract_f32, "float *d, float *s1, float *s2, int n");
+/**
+ * oil_multiply_f32:
+ * @d: destination
+ * @s1: source 1
+ * @s2: source 2
+ * @n: number of elements
+ *
+ * Multiplies elements in @s1 and @s2 and places the result in @d.
+ */
OIL_DEFINE_CLASS (multiply_f32, "float *d, float *s1, float *s2, int n");
+/**
+ * oil_divide_f32:
+ * @d: destination
+ * @s1: source 1
+ * @s2: source 2
+ * @n: number of elements
+ *
+ * Divides elements in @s1 by @s2 and places the result in @d.
+ */
OIL_DEFINE_CLASS (divide_f32, "float *d, float *s1, float *s2, int n");
+/**
+ * oil_minimum_f32:
+ * @d: destination
+ * @s1: source 1
+ * @s2: source 2
+ * @n: number of elements
+ *
+ * Places the lesser of @s1 and @s2 in @d.
+ */
OIL_DEFINE_CLASS (minimum_f32, "float *d, float *s1, float *s2, int n");
+/**
+ * oil_maximum_f32:
+ * @d: destination
+ * @s1: source 1
+ * @s2: source 2
+ * @n: number of elements
+ *
+ * Places the greater of @s1 and @s2 in @d.
+ */
OIL_DEFINE_CLASS (maximum_f32, "float *d, float *s1, float *s2, int n");
+/**
+ * oil_negative_f32:
+ * @d: destination
+ * @s: source
+ * @n: number of elements
+ *
+ * Negates each element in @s and places the result in @d.
+ */
OIL_DEFINE_CLASS (negative_f32, "float *d, float *s, int n");
+/**
+ * oil_inverse_f32:
+ * @d: destination
+ * @s: source
+ * @n: number of elements
+ *
+ * Calculates the multiplicative inverse of each element in @s and
+ * places the result in @d.
+ */
OIL_DEFINE_CLASS (inverse_f32, "float *d, float *s, int n");
+/**
+ * oil_sign_f32:
+ * @d: destination
+ * @s: source
+ * @n: number of elements
+ *
+ * Calculates the sign of each element in @s and
+ * places the result in @d.
+ */
OIL_DEFINE_CLASS (sign_f32, "float *d, float *s, int n");
+/**
+ * oil_floor_f32:
+ * @d: destination
+ * @s: source
+ * @n: number of elements
+ *
+ * Calculates the greatest integer less than or equal to each element
+ * in @s and places the result in @d.
+ */
OIL_DEFINE_CLASS (floor_f32, "float *d, float *s, int n");
+/**
+ * oil_scalaradd_f32_ns:
+ * @d: destination
+ * @s1: source
+ * @s2_1: source
+ * @n: number of elements
+ *
+ * Adds the constant value @s2_1 to each source element and places
+ * the result in @d.
+ */
OIL_DEFINE_CLASS (scalaradd_f32_ns, "float *d, float *s1, float *s2_1, int n");
+/**
+ * oil_scalarmultiply_f32_ns:
+ * @d: destination
+ * @s1: source
+ * @s2_1: source
+ * @n: number of elements
+ *
+ * Multiplies the constant value @s2_1 and each source element and places
+ * the result in @d.
+ */
OIL_DEFINE_CLASS (scalarmultiply_f32_ns, "float *d, float *s1, float *s2_1, int n");
static void
diff --git a/liboil/ref/mix_u8.c b/liboil/ref/mix_u8.c
index 43fc5a4..32e807c 100644
--- a/liboil/ref/mix_u8.c
+++ b/liboil/ref/mix_u8.c
@@ -33,6 +33,19 @@
#include <liboil/simdpack/simdpack.h>
#include <math.h>
+/**
+ * oil_mix_u8:
+ * @dest: DEST
+ * @src1: SRC1
+ * @src2: SRC2
+ * @src3: MASK
+ * @n:
+ *
+ * Performs the compisiting operation DEST = (SRC2 IN MASK) OVER SRC1,
+ * except it is done incorrectly, so this function should not be used.
+ *
+ * FIXME: This function is broken.
+ */
OIL_DEFINE_CLASS (mix_u8,
"uint8_t *dest, uint8_t *src1, uint8_t *src2, uint8_t *src3, int n");
diff --git a/liboil/ref/mult8x8_s16.c b/liboil/ref/mult8x8_s16.c
index 4d129b9..0114eee 100644
--- a/liboil/ref/mult8x8_s16.c
+++ b/liboil/ref/mult8x8_s16.c
@@ -35,6 +35,18 @@
#include <math.h>
+/**
+ * oil_mult8x8_s16:
+ * @d_8x8:
+ * @s1_8x8:
+ * @s2_8x8:
+ * @ds:
+ * @ss1:
+ * @ss2:
+ *
+ * Multiplies each element in @s1_8x8 and @s2_8x8 and places the result
+ * in @d_8x8.
+ */
OIL_DEFINE_CLASS (mult8x8_s16,
"int16_t *d_8x8, int16_t *s1_8x8, int16_t *s2_8x8, int ds, int ss1, int ss2");
diff --git a/liboil/ref/multsum.c b/liboil/ref/multsum.c
index 9b637f5..e8eb478 100644
--- a/liboil/ref/multsum.c
+++ b/liboil/ref/multsum.c
@@ -61,6 +61,30 @@ OIL_DEFINE_CLASS (multsum_ ## type, \
"type_" #type " *src2, int sstr2, " \
"int n")
+/**
+ * oil_multsum_f32:
+ * @dest:
+ * @src1:
+ * @sstr1:
+ * @src2:
+ * @sstr2:
+ * @n:
+ *
+ * Multiplies each element in @src1 and @src2 and sums the results
+ * over the entire array, and places the sum into @dest.
+ */
MULTSUM_DEFINE_REF(f32);
+/**
+ * oil_multsum_f64:
+ * @dest:
+ * @src1:
+ * @sstr1:
+ * @src2:
+ * @sstr2:
+ * @n:
+ *
+ * Multiplies each element in @src1 and @src2 and sums the results
+ * over the entire array, and places the sum into @dest.
+ */
MULTSUM_DEFINE_REF(f64);
diff --git a/liboil/ref/permute.c b/liboil/ref/permute.c
index 1d5618d..98bc619 100644
--- a/liboil/ref/permute.c
+++ b/liboil/ref/permute.c
@@ -67,12 +67,124 @@ OIL_DEFINE_CLASS_FULL (permute_ ## type, "type_" #type " *dest, int dstr, " \
"type_" #type " *src1, int sstr1, int32_t *src2, int sstr2, int n", \
permute_test)
+/**
+ * oil_permute_s8:
+ * @dest:
+ * @dstr:
+ * @src1:
+ * @sstr1:
+ * @src2:
+ * @sstr2:
+ * @n:
+ *
+ * Copies elements in @src1 to @dest, permuting them by @src2. That is,
+ * @dest[i] is set to @src1[@src2[i]]. Values in @src2 must be
+ * non-negative and less than @n.
+ */
PERMUTE_DEFINE_REF (s8);
+/**
+ * oil_permute_u8:
+ * @dest:
+ * @dstr:
+ * @src1:
+ * @sstr1:
+ * @src2:
+ * @sstr2:
+ * @n:
+ *
+ * Copies elements in @src1 to @dest, permuting them by @src2. That is,
+ * @dest[i] is set to @src1[@src2[i]]. Values in @src2 must be
+ * non-negative and less than @n.
+ */
PERMUTE_DEFINE_REF (u8);
+/**
+ * oil_permute_s16:
+ * @dest:
+ * @dstr:
+ * @src1:
+ * @sstr1:
+ * @src2:
+ * @sstr2:
+ * @n:
+ *
+ * Copies elements in @src1 to @dest, permuting them by @src2. That is,
+ * @dest[i] is set to @src1[@src2[i]]. Values in @src2 must be
+ * non-negative and less than @n.
+ */
PERMUTE_DEFINE_REF (s16);
+/**
+ * oil_permute_u16:
+ * @dest:
+ * @dstr:
+ * @src1:
+ * @sstr1:
+ * @src2:
+ * @sstr2:
+ * @n:
+ *
+ * Copies elements in @src1 to @dest, permuting them by @src2. That is,
+ * @dest[i] is set to @src1[@src2[i]]. Values in @src2 must be
+ * non-negative and less than @n.
+ */
PERMUTE_DEFINE_REF (u16);
+/**
+ * oil_permute_s32:
+ * @dest:
+ * @dstr:
+ * @src1:
+ * @sstr1:
+ * @src2:
+ * @sstr2:
+ * @n:
+ *
+ * Copies elements in @src1 to @dest, permuting them by @src2. That is,
+ * @dest[i] is set to @src1[@src2[i]]. Values in @src2 must be
+ * non-negative and less than @n.
+ */
PERMUTE_DEFINE_REF (s32);
+/**
+ * oil_permute_u32:
+ * @dest:
+ * @dstr:
+ * @src1:
+ * @sstr1:
+ * @src2:
+ * @sstr2:
+ * @n:
+ *
+ * Copies elements in @src1 to @dest, permuting them by @src2. That is,
+ * @dest[i] is set to @src1[@src2[i]]. Values in @src2 must be
+ * non-negative and less than @n.
+ */
PERMUTE_DEFINE_REF (u32);
+/**
+ * oil_permute_f32:
+ * @dest:
+ * @dstr:
+ * @src1:
+ * @sstr1:
+ * @src2:
+ * @sstr2:
+ * @n:
+ *
+ * Copies elements in @src1 to @dest, permuting them by @src2. That is,
+ * @dest[i] is set to @src1[@src2[i]]. Values in @src2 must be
+ * non-negative and less than @n.
+ */
PERMUTE_DEFINE_REF (f32);
+/**
+ * oil_permute_f64:
+ * @dest:
+ * @dstr:
+ * @src1:
+ * @sstr1:
+ * @src2:
+ * @sstr2:
+ * @n:
+ *
+ * Copies elements in @src1 to @dest, permuting them by @src2. That is,
+ * @dest[i] is set to @src1[@src2[i]]. Values in @src2 must be
+ * non-negative and less than @n.
+ */
PERMUTE_DEFINE_REF (f64);
diff --git a/liboil/ref/recon8x8.c b/liboil/ref/recon8x8.c
index 0455198..06a000c 100644
--- a/liboil/ref/recon8x8.c
+++ b/liboil/ref/recon8x8.c
@@ -34,10 +34,44 @@
#include <liboil/liboilcolorspace.h>
+/**
+ * oil_recon8x8_intra:
+ * @d_8x8:
+ * @ds:
+ * @s_8x8:
+ *
+ * Adds 128 to each value in the source array, clamps to the range [0,255],
+ * and places the result in the destination array.
+ */
OIL_DEFINE_CLASS (recon8x8_intra,
"uint8_t *d_8x8, int ds, int16_t *s_8x8");
+/**
+ * oil_recon8x8_inter:
+ * @d_8x8:
+ * @ds:
+ * @s1_8x8:
+ * @ss1:
+ * @s2_8x8:
+ *
+ * Adds each element in @s1_8x8 and @s2_8x8, clamps to the range [0,255],
+ * and places the result in the destination array.
+ */
OIL_DEFINE_CLASS (recon8x8_inter,
"uint8_t *d_8x8, int ds, uint8_t *s1_8x8, int ss1, int16_t *s2_8x8");
+/**
+ * oil_recon8x8_inter2:
+ * @d_8x8:
+ * @ds:
+ * @s1_8x8:
+ * @ss1:
+ * @s2_8x8:
+ * @ss2:
+ * @s3_8x8:
+ *
+ * Adds each element in @s1_8x8 and @s2_8x8, divides by 2, and adds
+ * to @s3_8x8, clamps to the range [0,255], and places the result in
+ * the destination array.
+ */
OIL_DEFINE_CLASS (recon8x8_inter2,
"uint8_t *d_8x8, int ds, uint8_t *s1_8x8, int ss1, uint8_t *s2_8x8, int ss2, int16_t *s3_8x8");
diff --git a/liboil/ref/resample.c b/liboil/ref/resample.c
index acefb1c..3cd28d7 100644
--- a/liboil/ref/resample.c
+++ b/liboil/ref/resample.c
@@ -137,13 +137,13 @@ OIL_DEFINE_IMPL_REF (resample_linear_argb_ref, resample_linear_argb);
* @n:
*
* Linearly interpolate the @s_n and @s2_n arrays using the scale
- * factor in @s3_1. Valid values of @s3_1 range from 0 to 256
- * inclusive. A value of 0 indicates weights of 1.0 and 0.0 for
+ * factor in @s3_1. The value @s3_1 must be in the range [0, 256]
+ * A value of 0 indicates weights of 1.0 and 0.0 for
* the s_n and s2_n arrays respectively. A value of 256 indicates
* weights of 0.0 and 1.0 respectively.
*
* This function is not intended for alpha blending; use one of the
- * composite functions instead.
+ * compositing functions instead.
*/
static void
merge_linear_argb_test (OilTest *test)
@@ -157,6 +157,23 @@ OIL_DEFINE_CLASS_FULL (merge_linear_argb,
"uint32_t *d_n, uint32_t *s_n, uint32_t *s2_n, uint32_t *s3_1, int n",
merge_linear_argb_test);
+/**
+ * oil_merge_linear_argb:
+ * @d_n:
+ * @s_n:
+ * @s2_n:
+ * @s3_1:
+ * @n:
+ *
+ * Linearly interpolate the @s_n and @s2_n arrays using the scale
+ * factor in @s3_1. The value @s3_1 must be in the range [0, 256]
+ * A value of 0 indicates weights of 1.0 and 0.0 for
+ * the s_n and s2_n arrays respectively. A value of 256 indicates
+ * weights of 0.0 and 1.0 respectively.
+ *
+ * This function is not intended for alpha blending; use one of the
+ * compositing functions instead.
+ */
static void
merge_linear_argb_ref (uint32_t *d, uint32_t *s1, uint32_t *s2,
uint32_t *src3, int n)
diff --git a/liboil/ref/rowcolsad8x8.c b/liboil/ref/rowcolsad8x8.c
index ecddded..fc57b04 100644
--- a/liboil/ref/rowcolsad8x8.c
+++ b/liboil/ref/rowcolsad8x8.c
@@ -36,8 +36,32 @@
#define ABS(x) ((x)>0 ? (x) : -(x))
#define DSP_OP_ABS_DIFF(a,b) ABS((((int)(a)) - ((int)(b))))
+/**
+ * oil_rowsad8x8_u8:
+ * @d_1:
+ * @s1_8x8:
+ * @s2_8x8:
+ *
+ * Calculates the sum of absolute differences between @s1_8x8 and @s1_8s8
+ * for the first 4 elements of the first row, and the sum of absolute
+ * differences for the last 4 elements of the first row, and places the
+ * maximum of those values in @dest.
+ *
+ * FIXME: This function is declared incorrectly.
+ */
OIL_DEFINE_CLASS (rowsad8x8_u8,
"uint32_t *d_1, uint8_t *s1_8x8, uint8_t *s2_8x8");
+/**
+ * oil_colsad8x8_u8:
+ * @d_1:
+ * @s1_8x8:
+ * @s2_8x8:
+ *
+ * Divides the 8x8 block into 16 1x4 regions, and calculates the
+ * sum of absolute differences between @s1_8x8 and @s2_8x8 for
+ * each region. The maximum of the results in each region is
+ * placed in @d_1.
+ */
OIL_DEFINE_CLASS (colsad8x8_u8,
"uint32_t *d_1, uint8_t *s1_8x8, int ss1, uint8_t *s2_8x8, int ss2");
diff --git a/liboil/ref/sad8x8.c b/liboil/ref/sad8x8.c
index a8e1caf..88cd631 100644
--- a/liboil/ref/sad8x8.c
+++ b/liboil/ref/sad8x8.c
@@ -34,10 +34,43 @@
#include <math.h>
+/**
+ * oil_sad8x8_u8:
+ * @d_1:
+ * @s1_8x8:
+ * @ss1:
+ * @s2_8x8:
+ * @ss2:
+ *
+ * Calculates the sum of absolute differences between elements in @s1_8x8
+ * and @s2_8x8, and places the result in @d_1.
+ */
OIL_DEFINE_CLASS (sad8x8_u8,
"uint32_t *d_1, uint8_t *s1_8x8, int ss1, uint8_t *s2_8x8, int ss2");
+/**
+ * oil_sad8x8_s16_2:
+ * @d_1:
+ * @s1_8x8:
+ * @ss1:
+ * @s2_8x8:
+ * @ss2:
+ *
+ * Calculates the sum of absolute differences between elements in @s1_8x8
+ * and @s2_8x8, and places the result in @d_1.
+ */
OIL_DEFINE_CLASS (sad8x8_s16_2,
"uint32_t *d_1, int16_t *s1_8x8, int ss1, int16_t *s2_8x8, int ss2");
+/**
+ * oil_sad8x8_f64_2:
+ * @d_1:
+ * @s1_8x8:
+ * @ss1:
+ * @s2_8x8:
+ * @ss2:
+ *
+ * Calculates the sum of absolute differences between elements in @s1_8x8
+ * and @s2_8x8, and places the result in @d_1.
+ */
OIL_DEFINE_CLASS (sad8x8_f64_2,
"double *d_1, double *s1_8x8, int ss1, double *s2_8x8, int ss2");
diff --git a/liboil/ref/sad8x8_broken.c b/liboil/ref/sad8x8_broken.c
index b0b8a94..356777f 100644
--- a/liboil/ref/sad8x8_broken.c
+++ b/liboil/ref/sad8x8_broken.c
@@ -34,8 +34,34 @@
#include <math.h>
+/**
+ * oil_sad8x8_s16:
+ * @d_8x8:
+ * @ds:
+ * @s1_8x8:
+ * @ss1:
+ * @s2_8x8:
+ * @ss2:
+ *
+ * FIXME: This function is broken and has been replaced by
+ * @oil_sad8x8_s16_2() because the destination of this function
+ * is an 8x8 block instead of a single value.
+ */
OIL_DEFINE_CLASS (sad8x8_s16,
"uint32_t *d_8x8, int ds, int16_t *s1_8x8, int ss1, int16_t *s2_8x8, int ss2");
+/**
+ * oil_sad8x8_f64:
+ * @d_8x8:
+ * @ds:
+ * @s1_8x8:
+ * @ss1:
+ * @s2_8x8:
+ * @ss2:
+ *
+ * FIXME: This function is broken and has been replaced by
+ * @oil_sad8x8_f64_2() because the destination of this function
+ * is an 8x8 block instead of a single value.
+ */
OIL_DEFINE_CLASS (sad8x8_f64,
"double *d_8x8, int ds, double *s1_8x8, int ss1, double *s2_8x8, int ss2");
diff --git a/liboil/ref/sad8x8avg.c b/liboil/ref/sad8x8avg.c
index 846547b..e17dd8a 100644
--- a/liboil/ref/sad8x8avg.c
+++ b/liboil/ref/sad8x8avg.c
@@ -34,6 +34,21 @@
#define ABS(x) ((x)>0 ? (x) : -(x))
+/**
+ * oil_sad8x8_u8_avg:
+ * @d_1:
+ * @s1_8x8:
+ * @ss1:
+ * @s2_8x8:
+ * @s3_8x8:
+ * @ss2:
+ *
+ * Calculates the sum of absolute differences between @s1_8x8 and
+ * the average of @s2_8x8 and @s3_8x8.
+ *
+ * FIXME: This function is broken because the reference function assumes
+ * the stride for @s3_8x8 is @ss2.
+ */
OIL_DEFINE_CLASS (sad8x8_u8_avg,
"uint32_t *d_1, uint8_t *s1_8x8, int ss1, uint8_t *s2_8x8, uint8_t *s3_8x8, int ss2");
diff --git a/liboil/ref/scalaradd.c b/liboil/ref/scalaradd.c
index 33d8d52..e4aa1da 100644
--- a/liboil/ref/scalaradd.c
+++ b/liboil/ref/scalaradd.c
@@ -45,19 +45,139 @@ static void scalaradd_ ## type ## _ref( \
} \
} \
OIL_DEFINE_CLASS (scalaradd_ ## type, \
- "type_" #type " *dest, int dstr, " \
- "type_" #type " *src, int sstr, " \
+ "type_" #type " *d, int dstr, " \
+ "type_" #type " *s1, int sstr, " \
"type_" #type " *s2_1 int n"); \
OIL_DEFINE_IMPL_REF (scalaradd_ ## type ## _ref, scalaradd_ ## type);
+/**
+ * oil_scalaradd_s8:
+ * @d:
+ * @dstr:
+ * @s1:
+ * @sstr:
+ * @s2_1:
+ * @n:
+ *
+ * Adds the constant value @s2_1 to each value in @s1 and places the
+ * result in @d.
+ *
+ * FIXME: This function is difficult to optimize and will likely be
+ * replaced.
+ */
SCALARADD_DEFINE_REF (s8);
+/**
+ * oil_scalaradd_u8:
+ * @d:
+ * @dstr:
+ * @s1:
+ * @sstr:
+ * @s2_1:
+ * @n:
+ *
+ * Adds the constant value @s2_1 to each value in @s1 and places the
+ * result in @d.
+ *
+ * FIXME: This function is difficult to optimize and will likely be
+ * replaced.
+ */
SCALARADD_DEFINE_REF (u8);
+/**
+ * oil_scalaradd_s16:
+ * @d:
+ * @dstr:
+ * @s1:
+ * @sstr:
+ * @s2_1:
+ * @n:
+ *
+ * Adds the constant value @s2_1 to each value in @s1 and places the
+ * result in @d.
+ *
+ * FIXME: This function is difficult to optimize and will likely be
+ * replaced.
+ */
SCALARADD_DEFINE_REF (s16);
+/**
+ * oil_scalaradd_u16:
+ * @d:
+ * @dstr:
+ * @s1:
+ * @sstr:
+ * @s2_1:
+ * @n:
+ *
+ * Adds the constant value @s2_1 to each value in @s1 and places the
+ * result in @d.
+ *
+ * FIXME: This function is difficult to optimize and will likely be
+ * replaced.
+ */
SCALARADD_DEFINE_REF (u16);
+/**
+ * oil_scalaradd_s32:
+ * @d:
+ * @dstr:
+ * @s1:
+ * @sstr:
+ * @s2_1:
+ * @n:
+ *
+ * Adds the constant value @s2_1 to each value in @s1 and places the
+ * result in @d.
+ *
+ * FIXME: This function is difficult to optimize and will likely be
+ * replaced.
+ */
SCALARADD_DEFINE_REF (s32);
+/**
+ * oil_scalaradd_u32:
+ * @d:
+ * @dstr:
+ * @s1:
+ * @sstr:
+ * @s2_1:
+ * @n:
+ *
+ * Adds the constant value @s2_1 to each value in @s1 and places the
+ * result in @d.
+ *
+ * FIXME: This function is difficult to optimize and will likely be
+ * replaced.
+ */
SCALARADD_DEFINE_REF (u32);
+/**
+ * oil_scalaradd_f32:
+ * @d:
+ * @dstr:
+ * @s1:
+ * @sstr:
+ * @s2_1:
+ * @n:
+ *
+ * Adds the constant value @s2_1 to each value in @s1 and places the
+ * result in @d.
+ *
+ * FIXME: This function is difficult to optimize and will likely be
+ * replaced.
+ */
SCALARADD_DEFINE_REF (f32);
+/**
+ * oil_scalaradd_f64:
+ * @d:
+ * @dstr:
+ * @s1:
+ * @sstr:
+ * @s2_1:
+ * @n:
+ *
+ * Adds the constant value @s2_1 to each value in @s1 and places the
+ * result in @d.
+ *
+ * FIXME: This function is difficult to optimize and will likely be
+ * replaced.
+ */
SCALARADD_DEFINE_REF (f64);
diff --git a/liboil/ref/scalarmult.c b/liboil/ref/scalarmult.c
index b779244..0a5e0f7 100644
--- a/liboil/ref/scalarmult.c
+++ b/liboil/ref/scalarmult.c
@@ -44,18 +44,138 @@ static void scalarmult_ ## type ## _ref( \
} \
} \
OIL_DEFINE_CLASS(scalarmult_ ## type, \
- "type_" #type " *dest, int dstr, " \
- "type_" #type " *src, int sstr, " \
+ "type_" #type " *d, int dstr, " \
+ "type_" #type " *s1, int sstr, " \
"type_" #type " *s2_1, int n"); \
OIL_DEFINE_IMPL_REF (scalarmult_ ## type ## _ref, scalarmult_ ## type);
+/**
+ * oil_scalarmult_s8:
+ * @d:
+ * @dstr:
+ * @s1:
+ * @sstr:
+ * @s2_1:
+ * @n:
+ *
+ * Multiplies the constant value @s2_1 to each value in @s1 and places the
+ * result in @d.
+ *
+ * FIXME: This function is difficult to optimize and will likely be
+ * replaced.
+ */
SCALARMULT_DEFINE_REF (s8);
+/**
+ * oil_scalarmult_u8:
+ * @d:
+ * @dstr:
+ * @s1:
+ * @sstr:
+ * @s2_1:
+ * @n:
+ *
+ * Multiplies the constant value @s2_1 to each value in @s1 and places the
+ * result in @d.
+ *
+ * FIXME: This function is difficult to optimize and will likely be
+ * replaced.
+ */
SCALARMULT_DEFINE_REF (u8);
+/**
+ * oil_scalarmult_s16:
+ * @d:
+ * @dstr:
+ * @s1:
+ * @sstr:
+ * @s2_1:
+ * @n:
+ *
+ * Multiplies the constant value @s2_1 to each value in @s1 and places the
+ * result in @d.
+ *
+ * FIXME: This function is difficult to optimize and will likely be
+ * replaced.
+ */
SCALARMULT_DEFINE_REF (s16);
+/**
+ * oil_scalarmult_u16:
+ * @d:
+ * @dstr:
+ * @s1:
+ * @sstr:
+ * @s2_1:
+ * @n:
+ *
+ * Multiplies the constant value @s2_1 to each value in @s1 and places the
+ * result in @d.
+ *
+ * FIXME: This function is difficult to optimize and will likely be
+ * replaced.
+ */
SCALARMULT_DEFINE_REF (u16);
+/**
+ * oil_scalarmult_s32:
+ * @d:
+ * @dstr:
+ * @s1:
+ * @sstr:
+ * @s2_1:
+ * @n:
+ *
+ * Multiplies the constant value @s2_1 to each value in @s1 and places the
+ * result in @d.
+ *
+ * FIXME: This function is difficult to optimize and will likely be
+ * replaced.
+ */
SCALARMULT_DEFINE_REF (s32);
+/**
+ * oil_scalarmult_u32:
+ * @d:
+ * @dstr:
+ * @s1:
+ * @sstr:
+ * @s2_1:
+ * @n:
+ *
+ * Multiplies the constant value @s2_1 to each value in @s1 and places the
+ * result in @d.
+ *
+ * FIXME: This function is difficult to optimize and will likely be
+ * replaced.
+ */
SCALARMULT_DEFINE_REF (u32);
+/**
+ * oil_scalarmult_f32:
+ * @d:
+ * @dstr:
+ * @s1:
+ * @sstr:
+ * @s2_1:
+ * @n:
+ *
+ * Multiplies the constant value @s2_1 to each value in @s1 and places the
+ * result in @d.
+ *
+ * FIXME: This function is difficult to optimize and will likely be
+ * replaced.
+ */
SCALARMULT_DEFINE_REF (f32);
+/**
+ * oil_scalarmult_f64:
+ * @d:
+ * @dstr:
+ * @s1:
+ * @sstr:
+ * @s2_1:
+ * @n:
+ *
+ * Multiplies the constant value @s2_1 to each value in @s1 and places the
+ * result in @d.
+ *
+ * FIXME: This function is difficult to optimize and will likely be
+ * replaced.
+ */
SCALARMULT_DEFINE_REF (f64);
diff --git a/liboil/ref/sincos_f64.c b/liboil/ref/sincos_f64.c
index 7c59b78..4ebc393 100644
--- a/liboil/ref/sincos_f64.c
+++ b/liboil/ref/sincos_f64.c
@@ -32,6 +32,18 @@
#include <liboil/liboilfunction.h>
#include <math.h>
+/**
+ * oil_sincos_f64:
+ * @dest1:
+ * @dest2:
+ * @n:
+ * @s1_1:
+ * @s2_1:
+ *
+ * Calculates sin(x) and cos(x) and places the results in @dest1 and
+ * @dest2 respectively. Values for x start at @s1_1 and are incremented
+ * by @s2_1 for each destination element.
+ */
OIL_DEFINE_CLASS (sincos_f64,
"double *dest1, double *dest2, int n, double *s1_1, double *s2_1");
diff --git a/liboil/ref/splat.c b/liboil/ref/splat.c
index 93c434d..4f686e2 100644
--- a/liboil/ref/splat.c
+++ b/liboil/ref/splat.c
@@ -31,9 +31,43 @@
#include <liboil/liboilfunction.h>
#include <string.h>
+/**
+ * oil_splat_u8:
+ * @dest:
+ * @dstr:
+ * @s1_1:
+ * @n:
+ *
+ * Copies the constant source value @s1_1 to each element in @dest.
+ */
OIL_DEFINE_CLASS(splat_u8,"uint8_t *dest, int dstr, uint8_t *s1_1, int n");
+/**
+ * oil_splat_u32:
+ * @dest:
+ * @dstr:
+ * @s1_1:
+ * @n:
+ *
+ * Copies the constant source value @s1_1 to each element in @dest.
+ */
OIL_DEFINE_CLASS(splat_u32,"uint32_t *dest, int dstr, uint32_t *s1_1, int n");
+/**
+ * oil_splat_u8_ns:
+ * @dest:
+ * @s1_1:
+ * @n:
+ *
+ * Copies the constant source value @s1_1 to each element in @dest.
+ */
OIL_DEFINE_CLASS(splat_u8_ns,"uint8_t *dest, uint8_t *s1_1, int n");
+/**
+ * oil_splat_u32_ns:
+ * @dest:
+ * @s1_1:
+ * @n:
+ *
+ * Copies the constant source value @s1_1 to each element in @dest.
+ */
OIL_DEFINE_CLASS(splat_u32_ns,"uint32_t *dest, uint32_t *s1_1, int n");
diff --git a/liboil/ref/squaresum_f64.c b/liboil/ref/squaresum_f64.c
index d7ede50..d3c2bd3 100644
--- a/liboil/ref/squaresum_f64.c
+++ b/liboil/ref/squaresum_f64.c
@@ -34,7 +34,16 @@
#include <math.h>
-OIL_DEFINE_CLASS (squaresum_f64, "double *dest, double *src, int n");
+/**
+ * oil_squaresum_f64:
+ * @d:
+ * @s:
+ * @n:
+ *
+ * Sums the square of each element in @s and places the result in
+ * @dest.
+ */
+OIL_DEFINE_CLASS (squaresum_f64, "double *d, double *s, int n");
static void
squaresum_f64_ref(double *dest, double *src, int n)
diff --git a/liboil/ref/sum_f64.c b/liboil/ref/sum_f64.c
index 2b665ac..aac6aed 100644
--- a/liboil/ref/sum_f64.c
+++ b/liboil/ref/sum_f64.c
@@ -33,7 +33,17 @@
#include <liboil/simdpack/simdpack.h>
#include <math.h>
-OIL_DEFINE_CLASS (sum_f64, "double *dest, double *src, int sstr, int n");
+/**
+ * oil_sum_f64:
+ * @d_1: destination
+ * @s: source array
+ * @sstr: stride of source elements
+ * @n: number of elements
+ *
+ * Sums the elements in the source array and places the result in
+ * @d.
+ */
+OIL_DEFINE_CLASS (sum_f64, "double *d_1, double *s, int sstr, int n");
//OIL_DEFINE_CLASS (sum_f64_i10, "double *dest, double *src, int sstr, int n");
static void
diff --git a/liboil/ref/tablelookup.c b/liboil/ref/tablelookup.c
index 978beb6..f067b36 100644
--- a/liboil/ref/tablelookup.c
+++ b/liboil/ref/tablelookup.c
@@ -31,6 +31,19 @@
#include <liboil/liboilfunction.h>
+/**
+ * oil_tablelookup_u8:
+ * @d:
+ * @ds:
+ * @s1:
+ * @ss1:
+ * @s2_256:
+ * @ss2:
+ * @n:
+ *
+ * Looks up each element in @s1 using the lookup table in @s2_256,
+ * and places the table value in @d.
+ */
OIL_DEFINE_CLASS (tablelookup_u8,
"uint8_t *d, int ds, uint8_t *s1, int ss1, "
"uint8_t *s2_256, int ss2, int n");
diff --git a/liboil/ref/trans8x8.c b/liboil/ref/trans8x8.c
index 8fe882b..b7787fd 100644
--- a/liboil/ref/trans8x8.c
+++ b/liboil/ref/trans8x8.c
@@ -54,4 +54,54 @@ TRANS8x8_DEFINE_REF(u16);
TRANS8x8_DEFINE_REF(u32);
TRANS8x8_DEFINE_REF(f64);
+/**
+ * oil_trans8x8_u8:
+ * @d_8x8:
+ * @ds:
+ * @s_8x8:
+ * @ss:
+ *
+ * Performs a matrix transpose the 8x8 block represented by @s_8x8
+ * and places the
+ * result in @d_8x8. Note that this function can also be used for
+ * any type of this size.
+ */
+
+/**
+ * oil_trans8x8_u16:
+ * @d_8x8:
+ * @ds:
+ * @s_8x8:
+ * @ss:
+ *
+ * Performs a matrix transpose the 8x8 block represented by @s_8x8
+ * and places the
+ * result in @d_8x8. Note that this function can also be used for
+ * any type of this size.
+ */
+
+/**
+ * oil_trans8x8_u32:
+ * @d_8x8:
+ * @ds:
+ * @s_8x8:
+ * @ss:
+ *
+ * Performs a matrix transpose the 8x8 block represented by @s_8x8
+ * and places the
+ * result in @d_8x8. Note that this function can also be used for
+ * any type of this size.
+ */
+
+/**
+ * oil_trans8x8_f64:
+ * @d_8x8:
+ * @ds:
+ * @s_8x8:
+ * @ss:
+ *
+ * Performs a matrix transpose the 8x8 block represented by @s_8x8
+ * and places the
+ * result in @d_8x8.
+ */
diff --git a/liboil/ref/vectoradd_f64.c b/liboil/ref/vectoradd_f64.c
index 2b2a092..b6f94f8 100644
--- a/liboil/ref/vectoradd_f64.c
+++ b/liboil/ref/vectoradd_f64.c
@@ -47,21 +47,178 @@ static void vectoradd_ ## type ## _ref ( \
} \
} \
OIL_DEFINE_CLASS (vectoradd_ ## type, \
- "type_" #type " *dest, int dstr, " \
- "type_" #type " *src1, int sstr1, " \
- "type_" #type " *src2, int sstr2, " \
+ "type_" #type " *d, int dstr, " \
+ "type_" #type " *s1, int sstr1, " \
+ "type_" #type " *s2, int sstr2, " \
"int n, type_" #type " *s3_1, type_" #type " *s4_1"); \
OIL_DEFINE_IMPL_REF (vectoradd_ ## type ## _ref, vectoradd_ ## type);
+/**
+ * oil_vectoradd_s8:
+ * @d:
+ * @dstr:
+ * @s1:
+ * @sstr1:
+ * @s2:
+ * @sstr2:
+ * @n:
+ * @s3_1:
+ * @s4_1:
+ *
+ * Multiplies the constant @s3_1 with each element of @s1 and
+ * multiplies the constant @s4_1 with each element of @s2 and
+ * adds the two results together and places the final result in
+ * @d.
+ *
+ * FIXME: This function is difficult to optimize and will likely be
+ * replaced.
+ */
VECTORADD_DEFINE (s8);
+/**
+ * oil_vectoradd_u8:
+ * @d:
+ * @dstr:
+ * @s1:
+ * @sstr1:
+ * @s2:
+ * @sstr2:
+ * @n:
+ * @s3_1:
+ * @s4_1:
+ *
+ * Multiplies the constant @s3_1 with each element of @s1 and
+ * multiplies the constant @s4_1 with each element of @s2 and
+ * adds the two results together and places the final result in
+ * @d.
+ *
+ * FIXME: This function is difficult to optimize and will likely be
+ * replaced.
+ */
VECTORADD_DEFINE (u8);
+/**
+ * oil_vectoradd_s16:
+ * @d:
+ * @dstr:
+ * @s1:
+ * @sstr1:
+ * @s2:
+ * @sstr2:
+ * @n:
+ * @s3_1:
+ * @s4_1:
+ *
+ * Multiplies the constant @s3_1 with each element of @s1 and
+ * multiplies the constant @s4_1 with each element of @s2 and
+ * adds the two results together and places the final result in
+ * @d.
+ *
+ * FIXME: This function is difficult to optimize and will likely be
+ * replaced.
+ */
VECTORADD_DEFINE (s16);
+/**
+ * oil_vectoradd_u16:
+ * @d:
+ * @dstr:
+ * @s1:
+ * @sstr1:
+ * @s2:
+ * @sstr2:
+ * @n:
+ * @s3_1:
+ * @s4_1:
+ *
+ * Multiplies the constant @s3_1 with each element of @s1 and
+ * multiplies the constant @s4_1 with each element of @s2 and
+ * adds the two results together and places the final result in
+ * @d.
+ *
+ * FIXME: This function is difficult to optimize and will likely be
+ * replaced.
+ */
VECTORADD_DEFINE (u16);
+/**
+ * oil_vectoradd_s32:
+ * @d:
+ * @dstr:
+ * @s1:
+ * @sstr1:
+ * @s2:
+ * @sstr2:
+ * @n:
+ * @s3_1:
+ * @s4_1:
+ *
+ * Multiplies the constant @s3_1 with each element of @s1 and
+ * multiplies the constant @s4_1 with each element of @s2 and
+ * adds the two results together and places the final result in
+ * @d.
+ *
+ * FIXME: This function is difficult to optimize and will likely be
+ * replaced.
+ */
VECTORADD_DEFINE (s32);
+/**
+ * oil_vectoradd_u32:
+ * @d:
+ * @dstr:
+ * @s1:
+ * @sstr1:
+ * @s2:
+ * @sstr2:
+ * @n:
+ * @s3_1:
+ * @s4_1:
+ *
+ * Multiplies the constant @s3_1 with each element of @s1 and
+ * multiplies the constant @s4_1 with each element of @s2 and
+ * adds the two results together and places the final result in
+ * @d.
+ *
+ * FIXME: This function is difficult to optimize and will likely be
+ * replaced.
+ */
VECTORADD_DEFINE (u32);
+/**
+ * oil_vectoradd_f32:
+ * @d:
+ * @dstr:
+ * @s1:
+ * @sstr1:
+ * @s2:
+ * @sstr2:
+ * @n:
+ * @s3_1:
+ * @s4_1:
+ *
+ * Multiplies the constant @s3_1 with each element of @s1 and
+ * multiplies the constant @s4_1 with each element of @s2 and
+ * adds the two results together and places the final result in
+ * @d.
+ *
+ * FIXME: This function is difficult to optimize and will likely be
+ * replaced.
+ */
VECTORADD_DEFINE (f32);
+/**
+ * oil_vectoradd_f64:
+ * @d:
+ * @dstr:
+ * @s1:
+ * @sstr1:
+ * @s2:
+ * @sstr2:
+ * @n:
+ * @s3_1:
+ * @s4_1:
+ *
+ * Multiplies the constant @s3_1 with each element of @s1 and
+ * multiplies the constant @s4_1 with each element of @s2 and
+ * adds the two results together and places the final result in
+ * @d.
+ *
+ * FIXME: This function is difficult to optimize and will likely be
+ * replaced.
+ */
VECTORADD_DEFINE (f64);
-
-
-
diff --git a/liboil/ref/vectoradd_s.c b/liboil/ref/vectoradd_s.c
index 15fe654..19f8724 100644
--- a/liboil/ref/vectoradd_s.c
+++ b/liboil/ref/vectoradd_s.c
@@ -52,18 +52,113 @@ static void vectoradd_s_ ## type ## _ref ( \
} \
} \
OIL_DEFINE_CLASS (vectoradd_s_ ## type, \
- "type_" #type " *dest, int dstr, " \
- "type_" #type " *src1, int sstr1, " \
- "type_" #type " *src2, int sstr2, " \
+ "type_" #type " *d, int dstr, " \
+ "type_" #type " *s1, int sstr1, " \
+ "type_" #type " *s2, int sstr2, " \
"int n"); \
OIL_DEFINE_IMPL_REF (vectoradd_s_ ## type ## _ref, vectoradd_s_ ## type);
+
+/**
+ * oil_vectoradd_s_s8:
+ * @d:
+ * @dstr:
+ * @s1:
+ * @sstr1:
+ * @s2:
+ * @sstr2:
+ * @n:
+ *
+ * Adds each element of @s1 to @s2 and clamps the result to the range
+ * of the type and places the result in @d.
+ *
+ * FIXME: This function is difficult to optimize and will likely be
+ * replaced.
+ */
VECTORADD_S_DEFINE_IMPL (s8,s16);
+/**
+ * oil_vectoradd_s_u8:
+ * @d:
+ * @dstr:
+ * @s1:
+ * @sstr1:
+ * @s2:
+ * @sstr2:
+ * @n:
+ *
+ * Adds each element of @s1 to @s2 and clamps the result to the range
+ * of the type and places the result in @d.
+ *
+ * FIXME: This function is difficult to optimize and will likely be
+ * replaced.
+ */
VECTORADD_S_DEFINE_IMPL (u8,u16);
+/**
+ * oil_vectoradd_s_s16:
+ * @d:
+ * @dstr:
+ * @s1:
+ * @sstr1:
+ * @s2:
+ * @sstr2:
+ * @n:
+ *
+ * Adds each element of @s1 to @s2 and clamps the result to the range
+ * of the type and places the result in @d.
+ *
+ * FIXME: This function is difficult to optimize and will likely be
+ * replaced.
+ */
VECTORADD_S_DEFINE_IMPL (s16,s32);
+/**
+ * oil_vectoradd_s_u16:
+ * @d:
+ * @dstr:
+ * @s1:
+ * @sstr1:
+ * @s2:
+ * @sstr2:
+ * @n:
+ *
+ * Adds each element of @s1 to @s2 and clamps the result to the range
+ * of the type and places the result in @d.
+ *
+ * FIXME: This function is difficult to optimize and will likely be
+ * replaced.
+ */
VECTORADD_S_DEFINE_IMPL (u16,u32);
-//VECTORADD_S_DEFINE_IMPL (s32,s64);
-//VECTORADD_S_DEFINE_IMPL (u32,u64);
+/**
+ * oil_vectoradd_s_f32:
+ * @d:
+ * @dstr:
+ * @s1:
+ * @sstr1:
+ * @s2:
+ * @sstr2:
+ * @n:
+ *
+ * Adds each element of @s1 to @s2 and clamps the result to the range
+ * [-1,1] and places the result in @d.
+ *
+ * FIXME: This function is difficult to optimize and will likely be
+ * replaced.
+ */
VECTORADD_S_DEFINE_IMPL (f32,f32);
+/**
+ * oil_vectoradd_s_f64:
+ * @d:
+ * @dstr:
+ * @s1:
+ * @sstr1:
+ * @s2:
+ * @sstr2:
+ * @n:
+ *
+ * Adds each element of @s1 to @s2 and clamps the result to the range
+ * [-1,1] and places the result in @d.
+ *
+ * FIXME: This function is difficult to optimize and will likely be
+ * replaced.
+ */
VECTORADD_S_DEFINE_IMPL (f64,f64);
diff --git a/liboil/utf8/utf8.c b/liboil/utf8/utf8.c
index 885d9e4..20889e1 100644
--- a/liboil/utf8/utf8.c
+++ b/liboil/utf8/utf8.c
@@ -49,6 +49,17 @@ utf8_validate_test (OilTest *test)
}
+/**
+ * oil_utf8_validate:
+ * @d_1:
+ * @s:
+ * @n:
+ *
+ * Checks @s for valid UTF-8 characters. If the entire @s array
+ * represents valid UTF-8 characters, @n is written to @d_1.
+ * Otherwise, the index in the array of the beginning of the first
+ * invalid UTF-8 character is written to @d_1.
+ */
OIL_DEFINE_CLASS_FULL (utf8_validate, "int32_t *d_1, uint8_t *s, int n",
utf8_validate_test);