Update contrib.
1 //Portions Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies). All rights reserved.
3 Copyright 2002,2003,2004,2005 David A. Schleef <ds@schleef.org>
6 Redistribution and use in source and binary forms, with or without
7 modification, are permitted provided that the following conditions
9 1. Redistributions of source code must retain the above copyright
10 notice, this list of conditions and the following disclaimer.
11 2. Redistributions in binary form must reproduce the above copyright
12 notice, this list of conditions and the following disclaimer in the
13 documentation and/or other materials provided with the distribution.
15 THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
16 IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
17 WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
18 ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
19 INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
20 (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
21 SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
22 HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
23 STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
24 IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
25 POSSIBILITY OF SUCH DAMAGE.
27 #include <liboil/liboilfunction.h>
28 #include <liboil/liboiltest.h>
29 #include <liboil/liboilrandom.h>
33 wavelet_test (OilTest *test)
35 int16_t *data = (int16_t *)oil_test_get_source_data (test, OIL_ARG_SRC1);
38 for(i=0;i<test->n;i++){
39 data[i] = oil_rand_u8();
44 rshift_test (OilTest *test)
49 data = (int16_t *)oil_test_get_source_data (test, OIL_ARG_SRC1);
50 for(i=0;i<test->n;i++){
51 data[i] = oil_rand_s16()>>1;
54 data = (int16_t *)oil_test_get_source_data (test, OIL_ARG_SRC2);
60 lshift_test (OilTest *test)
64 data = (int16_t *)oil_test_get_source_data (test, OIL_ARG_SRC2);
69 combine2_test (OilTest *test)
73 data = (int16_t *)oil_test_get_source_data (test, OIL_ARG_SRC3);
81 combine4_test (OilTest *test)
85 data = (int16_t *)oil_test_get_source_data (test, OIL_ARG_SRC5);
95 add2_test (OilTest *test)
100 data = (int16_t *)oil_test_get_source_data (test, OIL_ARG_SRC1);
101 for(i=0;i<test->n;i++){
102 data[i] = oil_rand_s16()>>4;
105 data = (int16_t *)oil_test_get_source_data (test, OIL_ARG_SRC2);
106 for(i=0;i<test->n;i++){
107 data[i] = oil_rand_s16()>>4;
110 data = (int16_t *)oil_test_get_source_data (test, OIL_ARG_SRC3);
111 for(i=0;i<test->n;i++){
112 data[i] = oil_rand_s16()>>4;
115 data = (int16_t *)oil_test_get_source_data (test, OIL_ARG_SRC4);
120 OIL_DEFINE_CLASS_FULL (deinterleave,
121 "int16_t *d_2xn, int16_t *s_2xn, int n", wavelet_test);
122 OIL_DEFINE_CLASS (deinterleave2_s16,
123 "int16_t *d1_n, int16_t *d2_n, int16_t *s_2xn, int n");
124 OIL_DEFINE_CLASS_FULL (interleave,
125 "int16_t *d_2xn, int16_t *s_2xn, int n", wavelet_test);
126 OIL_DEFINE_CLASS (interleave2_s16,
127 "int16_t *d_2xn, int16_t *s1_n, int16_t *s2_n, int n");
128 OIL_DEFINE_CLASS_FULL (synth_daub97,
129 "int16_t *d_2xn, int16_t *s_2xn, int n", wavelet_test);
130 OIL_DEFINE_CLASS_FULL (split_daub97,
131 "int16_t *d_2xn, int16_t *s_2xn, int n", wavelet_test);
132 OIL_DEFINE_CLASS_FULL (split_approx97,
133 "int16_t *d_2xn, int16_t *s_2xn, int n", wavelet_test);
134 OIL_DEFINE_CLASS_FULL (synth_approx97,
135 "int16_t *d_2xn, int16_t *s_2xn, int n", wavelet_test);
136 OIL_DEFINE_CLASS_FULL (split_53,
137 "int16_t *d_2xn, int16_t *s_2xn, int n", wavelet_test);
138 OIL_DEFINE_CLASS_FULL (synth_53,
139 "int16_t *d_2xn, int16_t *s_2xn, int n", wavelet_test);
140 OIL_DEFINE_CLASS_FULL (split_135,
141 "int16_t *d_2xn, int16_t *s_2xn, int n", wavelet_test);
142 OIL_DEFINE_CLASS_FULL (synth_135,
143 "int16_t *d_2xn, int16_t *s_2xn, int n", wavelet_test);
144 OIL_DEFINE_CLASS_FULL (add_const_rshift_s16,
145 "int16_t *d1, int16_t *s1, int16_t *s2_2, int n", rshift_test);
146 OIL_DEFINE_CLASS_FULL (lshift_s16,
147 "int16_t *d1, int16_t *s1, int16_t *s2_1, int n", lshift_test);
148 OIL_DEFINE_CLASS (multiply_and_add_s16,
149 "int16_t *d, int16_t *src1, int16_t *src2, int16_t *src3, int n");
150 OIL_DEFINE_CLASS (multiply_and_add_s16_u8,
151 "int16_t *d, int16_t *src1, int16_t *src2, uint8_t *src3, int n");
152 OIL_DEFINE_CLASS (multiply_and_acc_6xn_s16_u8, "int16_t *i1_6xn, int is1, "
153 "int16_t *s1_6xn, int ss1, uint8_t *s2_6xn, int ss2, int n");
154 OIL_DEFINE_CLASS (multiply_and_acc_8xn_s16_u8, "int16_t *i1_8xn, int is1, "
155 "int16_t *s1_8xn, int ss1, uint8_t *s2_8xn, int ss2, int n");
156 OIL_DEFINE_CLASS (multiply_and_acc_12xn_s16_u8, "int16_t *i1_12xn, int is1, "
157 "int16_t *s1_12xn, int ss1, uint8_t *s2_12xn, int ss2, int n");
158 OIL_DEFINE_CLASS (multiply_and_acc_16xn_s16_u8, "int16_t *i1_16xn, int is1, "
159 "int16_t *s1_16xn, int ss1, uint8_t *s2_16xn, int ss2, int n");
160 OIL_DEFINE_CLASS (multiply_and_acc_24xn_s16_u8, "int16_t *i1_24xn, int is1, "
161 "int16_t *s1_24xn, int ss1, uint8_t *s2_24xn, int ss2, int n");
162 OIL_DEFINE_CLASS_FULL (combine2_8xn_u8, "uint8_t *d_8xn, int ds1, "
163 "uint8_t *s1_8xn, int ss1, uint8_t *s2_8xn, int ss2, int16_t *s3_4, int n", combine2_test);
164 OIL_DEFINE_CLASS_FULL (combine2_12xn_u8, "uint8_t *d_12xn, int ds1, "
165 "uint8_t *s1_12xn, int ss1, uint8_t *s2_12xn, int ss2, int16_t *s3_4, int n", combine2_test);
166 OIL_DEFINE_CLASS_FULL (combine2_16xn_u8, "uint8_t *d_16xn, int ds1, "
167 "uint8_t *s1_16xn, int ss1, uint8_t *s2_16xn, int ss2, int16_t *s3_4, int n", combine2_test);
168 OIL_DEFINE_CLASS_FULL (combine4_8xn_u8, "uint8_t *d_8xn, int ds1, "
169 "uint8_t *s1_8xn, int ss1, uint8_t *s2_8xn, int ss2, uint8_t *s3_8xn, "
170 "int ss3, uint8_t *s4_8xn, int ss4, int16_t *s5_6, int n", combine4_test);
171 OIL_DEFINE_CLASS_FULL (combine4_12xn_u8, "uint8_t *d_12xn, int ds1, "
172 "uint8_t *s1_12xn, int ss1, uint8_t *s2_12xn, int ss2, uint8_t *s3_12xn, "
173 "int ss3, uint8_t *s4_12xn, int ss4, int16_t *s5_6, int n", combine4_test);
174 OIL_DEFINE_CLASS_FULL (combine4_16xn_u8, "uint8_t *d_16xn, int ds1, "
175 "uint8_t *s1_16xn, int ss1, uint8_t *s2_16xn, int ss2, uint8_t *s3_16xn, "
176 "int ss3, uint8_t *s4_16xn, int ss4, int16_t *s5_6, int n", combine4_test);
177 OIL_DEFINE_CLASS_FULL (add2_rshift_add_s16, "int16_t *d, int16_t *s1, "
178 "int16_t *s2, int16_t *s3, int16_t *s4_2, int n", add2_test);
179 OIL_DEFINE_CLASS_FULL (add2_rshift_sub_s16, "int16_t *d, int16_t *s1, "
180 "int16_t *s2, int16_t *s3, int16_t *s4_2, int n", add2_test);
181 OIL_DEFINE_CLASS (avg2_8xn_u8, "uint8_t *d_8xn, int ds1, "
182 "uint8_t *s1_8xn, int ss1, uint8_t *s2_8xn, int ss2, int n");
183 OIL_DEFINE_CLASS (avg2_12xn_u8, "uint8_t *d_12xn, int ds1, "
184 "uint8_t *s1_12xn, int ss1, uint8_t *s2_12xn, int ss2, int n");
185 OIL_DEFINE_CLASS (avg2_16xn_u8, "uint8_t *d_16xn, int ds1, "
186 "uint8_t *s1_16xn, int ss1, uint8_t *s2_16xn, int ss2, int n");
193 deinterleave_ref (int16_t *d_2xn, int16_t *s_2xn, int n)
198 d_2xn[i] = s_2xn[2*i];
199 d_2xn[n + i] = s_2xn[2*i + 1];
202 OIL_DEFINE_IMPL_REF (deinterleave_ref, deinterleave);
208 deinterleave2_s16_ref (int16_t *d1_n, int16_t *d2_n, int16_t *s_2xn, int n)
213 d1_n[i] = s_2xn[2*i];
214 d2_n[i] = s_2xn[2*i + 1];
217 OIL_DEFINE_IMPL_REF (deinterleave2_s16_ref, deinterleave2_s16);
223 interleave_ref (int16_t *d_2xn, int16_t *s_2xn, int n)
228 d_2xn[2*i] = s_2xn[i];
229 d_2xn[2*i + 1] = s_2xn[n + i];
232 OIL_DEFINE_IMPL_REF (interleave_ref, interleave);
238 interleave2_s16_ref (int16_t *d_2xn, int16_t *s1_n, int16_t *s2_n, int n)
243 d_2xn[2*i] = s1_n[i];
244 d_2xn[2*i + 1] = s2_n[i];
247 OIL_DEFINE_IMPL_REF (interleave2_s16_ref, interleave2_s16);
253 synth_daub97_ref (int16_t *d_2xn, int16_t *s_2xn, int n)
259 d_2xn[0] = s_2xn[0] - ((1817 * s_2xn[1]) >> 11);
261 d_2xn[i] = s_2xn[i] - ((1817 * (s_2xn[i-1] + s_2xn[i+1])) >> 12);
263 for(i=1;i<n*2-2;i+=2){
264 d_2xn[i] = s_2xn[i] - ((3616 * (d_2xn[i-1] + d_2xn[i+1])) >> 12);
266 d_2xn[n*2-1] = s_2xn[n*2-1] - ((3616 * d_2xn[n*2-2]) >> 11);
269 d_2xn[0] += (217 * d_2xn[1]) >> 11;
271 d_2xn[i] += (217 * (d_2xn[i-1] + d_2xn[i+1])) >> 12;
273 for(i=1;i<n*2-2;i+=2){
274 d_2xn[i] += (6497 * (d_2xn[i-1] + d_2xn[i+1])) >> 12;
276 d_2xn[n*2-1] += (6497 * d_2xn[n*2-2]) >> 11;
278 OIL_DEFINE_IMPL_REF (synth_daub97_ref, synth_daub97);
284 split_daub97_ref (int16_t *d_2xn, int16_t *s_2xn, int n)
290 for(i=1;i<n*2-2;i+=2){
291 d_2xn[i] = s_2xn[i] - ((6497 * (s_2xn[i-1] + s_2xn[i+1])) >> 12);
293 d_2xn[n*2-1] = s_2xn[n*2-1] - ((6497 * s_2xn[n*2-2]) >> 11);
294 d_2xn[0] = s_2xn[0] - ((217 * d_2xn[1]) >> 11);
296 d_2xn[i] = s_2xn[i] - ((217 * (d_2xn[i-1] + d_2xn[i+1])) >> 12);
300 for(i=1;i<n*2-2;i+=2){
301 d_2xn[i] += (3616 * (d_2xn[i-1] + d_2xn[i+1])) >> 12;
303 d_2xn[n*2-1] += (3616 * d_2xn[n*2-2]) >> 11;
304 d_2xn[0] += (1817 * d_2xn[1]) >> 11;
306 d_2xn[i] += (1817 * (d_2xn[i-1] + d_2xn[i+1])) >> 12;
309 OIL_DEFINE_IMPL_REF (split_daub97_ref, split_daub97);
316 split_approx97_ref (int16_t *d_2xn, int16_t *s_2xn, int n)
322 d_2xn[1] = s_2xn[1] - s_2xn[0];
323 d_2xn[0] = s_2xn[0] + (d_2xn[1] >> 1);
326 d_2xn[1] = s_2xn[1] - ((9*(s_2xn[0] + s_2xn[2]) - (s_2xn[2] + s_2xn[2])) >> 4);
327 d_2xn[3] = s_2xn[3] - ((9*s_2xn[2] - s_2xn[0]) >> 3);
330 d_2xn[0] = s_2xn[0] + (d_2xn[1] >> 1);
331 d_2xn[2] = s_2xn[2] + ((d_2xn[1] + d_2xn[3]) >> 2);
334 d_2xn[1] = s_2xn[1] - ((9*(s_2xn[0] + s_2xn[2]) - (s_2xn[2] + s_2xn[4])) >> 4);
335 for(i=3;i<n*2-4;i+=2){
336 d_2xn[i] = s_2xn[i] - ((9*(s_2xn[i-1] + s_2xn[i+1]) - (s_2xn[i-3] + s_2xn[i+3])) >> 4);
338 d_2xn[n*2-3] = s_2xn[n*2-3] - ((9*(s_2xn[n*2-4] + s_2xn[n*2-2]) - (s_2xn[n*2-6] + s_2xn[n*2-2])) >> 4);
339 d_2xn[n*2-1] = s_2xn[n*2-1] - ((9*s_2xn[n*2-2] - s_2xn[n*2-4]) >> 3);
342 d_2xn[0] = s_2xn[0] + (d_2xn[1] >> 1);
344 d_2xn[i] = s_2xn[i] + ((d_2xn[i-1] + d_2xn[i+1]) >> 2);
349 OIL_DEFINE_IMPL_REF (split_approx97_ref, split_approx97);
355 synth_approx97_ref (int16_t *d_2xn, int16_t *s_2xn, int n)
361 d_2xn[0] = s_2xn[0] - (s_2xn[1] >> 1);
362 d_2xn[1] = s_2xn[1] + d_2xn[0];
365 d_2xn[0] = s_2xn[0] - (s_2xn[1] >> 1);
366 d_2xn[2] = s_2xn[2] - ((s_2xn[1] + s_2xn[3]) >> 2);
369 d_2xn[1] = s_2xn[1] + ((9*(d_2xn[0] + d_2xn[2]) - (d_2xn[2] + d_2xn[2])) >> 4);
370 d_2xn[3] = s_2xn[3] + ((9*d_2xn[2] - d_2xn[0]) >> 3);
373 d_2xn[0] = s_2xn[0] - (s_2xn[1] >> 1);
375 d_2xn[i] = s_2xn[i] - ((s_2xn[i-1] + s_2xn[i+1]) >> 2);
379 d_2xn[1] = s_2xn[1] + ((9*(d_2xn[0] + d_2xn[2]) - (d_2xn[2] + d_2xn[4])) >> 4);
380 for(i=3;i<n*2-4;i+=2){
381 d_2xn[i] = s_2xn[i] + ((9*(d_2xn[i-1] + d_2xn[i+1]) - (d_2xn[i-3] + d_2xn[i+3])) >> 4);
383 d_2xn[n*2-3] = s_2xn[n*2-3] + ((9*(d_2xn[n*2-4] + d_2xn[n*2-2]) - (d_2xn[n*2-6] + d_2xn[n*2-2])) >> 4);
384 d_2xn[n*2-1] = s_2xn[n*2-1] + ((9*d_2xn[n*2-2] - d_2xn[n*2-4]) >> 3);
387 OIL_DEFINE_IMPL_REF (synth_approx97_ref, synth_approx97);
393 split_53_ref (int16_t *d_2xn, int16_t *s_2xn, int n)
399 d_2xn[1] = s_2xn[1] - s_2xn[0];
400 d_2xn[0] = s_2xn[0] + (d_2xn[1] >> 1);
402 d_2xn[1] = s_2xn[1] - ((s_2xn[0] + s_2xn[2]) >> 1);
403 d_2xn[0] = s_2xn[0] + (d_2xn[1] >> 1);
404 for(i=2;i<n*2-2;i+=2){
405 d_2xn[i+1] = s_2xn[i+1] - ((s_2xn[i] + s_2xn[i+2]) >> 1);
406 d_2xn[i] = s_2xn[i] + ((d_2xn[i-1] + d_2xn[i+1]) >> 2);
408 d_2xn[n*2-1] = s_2xn[n*2-1] - s_2xn[n*2-2];
409 d_2xn[n*2-2] = s_2xn[n*2-2] + ((d_2xn[n*2-3] + d_2xn[n*2-1]) >> 2);
412 OIL_DEFINE_IMPL_REF (split_53_ref, split_53);
418 synth_53_ref (int16_t *d_2xn, int16_t *s_2xn, int n)
424 d_2xn[0] = s_2xn[0] - (s_2xn[1] >> 1);
425 d_2xn[1] = s_2xn[1] + d_2xn[0];
427 d_2xn[0] = s_2xn[0] - (s_2xn[1] >> 1);
428 for(i=2;i<n*2-2;i+=2){
429 d_2xn[i] = s_2xn[i] - ((s_2xn[i-1] + s_2xn[i+1]) >> 2);
430 d_2xn[i-1] = s_2xn[i-1] + ((d_2xn[i] + d_2xn[i-2]) >> 1);
432 d_2xn[n*2-2] = s_2xn[n*2-2] - ((s_2xn[n*2-3] + s_2xn[n*2-1]) >> 2);
433 d_2xn[n*2-3] = s_2xn[n*2-3] + ((d_2xn[n*2-2] + d_2xn[n*2-4]) >> 1);
434 d_2xn[n*2-1] = s_2xn[n*2-1] + d_2xn[n*2-2];
437 OIL_DEFINE_IMPL_REF (synth_53_ref, synth_53);
444 split_135_ref (int16_t *d_2xn, int16_t *s_2xn, int n)
450 d_2xn[1] = s_2xn[1] - (s_2xn[0]);
451 d_2xn[0] = s_2xn[0] + (d_2xn[1]>>1);
454 d_2xn[1] = s_2xn[1] - ((9*(s_2xn[0] + s_2xn[2]) - (s_2xn[2] + s_2xn[2])) >> 4);
455 d_2xn[3] = s_2xn[3] - ((9*s_2xn[2] - s_2xn[0]) >> 3);
458 d_2xn[0] = s_2xn[0] + ((9*d_2xn[1] - d_2xn[3]) >> 4);
459 d_2xn[2] = s_2xn[2] + ((9*(d_2xn[1] + d_2xn[3]) - (d_2xn[1] + d_2xn[1])) >> 5);
462 d_2xn[1] = s_2xn[1] - ((9*(s_2xn[0] + s_2xn[2]) - (s_2xn[2] + s_2xn[4])) >> 4);
463 for(i=3;i<n*2-4;i+=2){
464 d_2xn[i] = s_2xn[i] - ((9*(s_2xn[i-1] + s_2xn[i+1]) - (s_2xn[i-3] + s_2xn[i+3])) >> 4);
466 d_2xn[n*2-3] = s_2xn[n*2-3] - ((9*(s_2xn[n*2-4] + s_2xn[n*2-2]) - (s_2xn[n*2-6] + s_2xn[n*2-2])) >> 4);
467 d_2xn[n*2-1] = s_2xn[n*2-1] - ((9*s_2xn[n*2-2] - s_2xn[n*2-4]) >> 3);
470 d_2xn[0] = s_2xn[0] + ((9*d_2xn[1] - d_2xn[3]) >> 4);
471 d_2xn[2] = s_2xn[2] + ((9*(d_2xn[1] + d_2xn[3]) - (d_2xn[1] + d_2xn[5])) >> 5);
472 for(i=4;i<n*2-2;i+=2){
473 d_2xn[i] = s_2xn[i] + ((9*(d_2xn[i-1] + d_2xn[i+1]) - (d_2xn[i-3] + d_2xn[i+3])) >> 5);
475 d_2xn[n*2-2] = s_2xn[n*2-2] + ((9*(d_2xn[n*2-3] + d_2xn[n*2-1]) - (d_2xn[n*2-5] + d_2xn[n*2-1])) >> 5);
479 OIL_DEFINE_IMPL_REF (split_135_ref, split_135);
485 synth_135_ref (int16_t *d_2xn, int16_t *s_2xn, int n)
491 d_2xn[0] = s_2xn[0] - (s_2xn[1]>>1);
492 d_2xn[1] = s_2xn[1] + (d_2xn[0]);
495 d_2xn[0] = s_2xn[0] - ((9*s_2xn[1] - s_2xn[3]) >> 4);
496 d_2xn[2] = s_2xn[2] - ((9*(s_2xn[1] + s_2xn[3]) - (s_2xn[1] + s_2xn[1])) >> 5);
499 d_2xn[1] = s_2xn[1] + ((9*(d_2xn[0] + d_2xn[2]) - (d_2xn[2] + d_2xn[2])) >> 4);
500 d_2xn[3] = s_2xn[3] + ((9*d_2xn[2] - d_2xn[0]) >> 3);
503 d_2xn[0] = s_2xn[0] - ((9*s_2xn[1] - s_2xn[3]) >> 4);
504 d_2xn[2] = s_2xn[2] - ((9*(s_2xn[1] + s_2xn[3]) - (s_2xn[1] + s_2xn[5])) >> 5);
505 for(i=4;i<n*2-2;i+=2){
506 d_2xn[i] = s_2xn[i] - ((9*(s_2xn[i-1] + s_2xn[i+1]) - (s_2xn[i-3] + s_2xn[i+3])) >> 5);
508 d_2xn[n*2-2] = s_2xn[n*2-2] - ((9*(s_2xn[n*2-3] + s_2xn[n*2-1]) - (s_2xn[n*2-5] + s_2xn[n*2-1])) >> 5);
511 d_2xn[1] = s_2xn[1] + ((9*(d_2xn[0] + d_2xn[2]) - (d_2xn[2] + d_2xn[4])) >> 4);
512 for(i=3;i<n*2-4;i+=2){
513 d_2xn[i] = s_2xn[i] + ((9*(d_2xn[i-1] + d_2xn[i+1]) - (d_2xn[i-3] + d_2xn[i+3])) >> 4);
515 d_2xn[n*2-3] = s_2xn[n*2-3] + ((9*(d_2xn[n*2-4] + d_2xn[n*2-2]) - (d_2xn[n*2-6] + d_2xn[n*2-2])) >> 4);
516 d_2xn[n*2-1] = s_2xn[n*2-1] + ((9*d_2xn[n*2-2] - d_2xn[n*2-4]) >> 3);
519 OIL_DEFINE_IMPL_REF (synth_135_ref, synth_135);
525 lift_test (OilTest *test)
530 data = (int16_t *)oil_test_get_source_data (test, OIL_ARG_SRC1);
531 for(i=0;i<test->n;i++){
532 data[i] = oil_rand_u8();
534 data = (int16_t *)oil_test_get_source_data (test, OIL_ARG_SRC2);
535 for(i=0;i<test->n;i++){
536 data[i] = oil_rand_u8();
538 data = (int16_t *)oil_test_get_source_data (test, OIL_ARG_SRC3);
539 for(i=0;i<test->n;i++){
540 data[i] = oil_rand_u8();
544 OIL_DEFINE_CLASS_FULL (lift_add_shift1,
545 "int16_t *d, int16_t *s1, int16_t *s2, int16_t *s3, int n", lift_test);
546 OIL_DEFINE_CLASS_FULL (lift_sub_shift1,
547 "int16_t *d, int16_t *s1, int16_t *s2, int16_t *s3, int n", lift_test);
548 OIL_DEFINE_CLASS_FULL (lift_add_shift2,
549 "int16_t *d, int16_t *s1, int16_t *s2, int16_t *s3, int n", lift_test);
550 OIL_DEFINE_CLASS_FULL (lift_sub_shift2,
551 "int16_t *d, int16_t *s1, int16_t *s2, int16_t *s3, int n", lift_test);
552 OIL_DEFINE_CLASS_FULL (lift_add_mult_shift12,
553 "int16_t *d, int16_t *s1, int16_t *s2, int16_t *s3, int16_t *s4_1, int n", lift_test);
554 OIL_DEFINE_CLASS_FULL (lift_sub_mult_shift12,
555 "int16_t *d, int16_t *s1, int16_t *s2, int16_t *s3, int16_t *s4_1, int n", lift_test);
556 OIL_DEFINE_CLASS_FULL (lift_add_135,
557 "int16_t *d, int16_t *s1, int16_t *s2, int16_t *s3, int16_t *s4, int16_t *s5, int n", lift_test);
558 OIL_DEFINE_CLASS_FULL (lift_sub_135,
559 "int16_t *d, int16_t *s1, int16_t *s2, int16_t *s3, int16_t *s4, int16_t *s5, int n", lift_test);
566 lift_add_shift1_ref (int16_t *d, int16_t *s1, int16_t *s2, int16_t *s3, int n)
570 d[i] = s1[i] + ((s2[i] + s3[i])>>1);
573 OIL_DEFINE_IMPL_REF (lift_add_shift1_ref, lift_add_shift1);
579 lift_sub_shift1_ref (int16_t *d, int16_t *s1, int16_t *s2, int16_t *s3, int n)
583 d[i] = s1[i] - ((s2[i] + s3[i])>>1);
586 OIL_DEFINE_IMPL_REF (lift_sub_shift1_ref, lift_sub_shift1);
592 lift_add_shift2_ref (int16_t *d, int16_t *s1, int16_t *s2, int16_t *s3, int n)
596 d[i] = s1[i] + ((s2[i] + s3[i])>>2);
599 OIL_DEFINE_IMPL_REF (lift_add_shift2_ref, lift_add_shift2);
605 lift_sub_shift2_ref (int16_t *d, int16_t *s1, int16_t *s2, int16_t *s3, int n)
609 d[i] = s1[i] - ((s2[i] + s3[i])>>2);
612 OIL_DEFINE_IMPL_REF (lift_sub_shift2_ref, lift_sub_shift2);
618 lift_add_mult_shift12_ref (int16_t *d, int16_t *s1, int16_t *s2, int16_t *s3, int16_t *s4, int n)
622 d[i] = s1[i] + ((s4[0]*(s2[i] + s3[i]))>>12);
625 OIL_DEFINE_IMPL_REF (lift_add_mult_shift12_ref, lift_add_mult_shift12);
631 lift_sub_mult_shift12_ref (int16_t *d, int16_t *s1, int16_t *s2, int16_t *s3, int16_t *s4, int n)
635 d[i] = s1[i] - ((s4[0]*(s2[i] + s3[i]))>>12);
638 OIL_DEFINE_IMPL_REF (lift_sub_mult_shift12_ref, lift_sub_mult_shift12);
644 lift_add_135_ref (int16_t *d, int16_t *s1, int16_t *s2, int16_t *s3,
645 int16_t *s4, int16_t *s5, int n)
649 d[i] = s1[i] + ((9*(s3[i-1] + s4[i+1]) - (s2[i-3] + s5[i+3])) >> 4);
652 OIL_DEFINE_IMPL_REF (lift_add_135_ref, lift_add_135);
658 lift_sub_135_ref (int16_t *d, int16_t *s1, int16_t *s2, int16_t *s3,
659 int16_t *s4, int16_t *s5, int n)
663 d[i] = s1[i] - ((9*(s3[i-1] + s4[i+1]) - (s2[i-3] + s5[i+3])) >> 4);
666 OIL_DEFINE_IMPL_REF (lift_sub_135_ref, lift_sub_135);
673 add_const_rshift_s16_ref(int16_t *d1, int16_t *s1, int16_t *s3_2, int n)
677 d1[i] = (s1[i] + s3_2[0])>>s3_2[1];
680 OIL_DEFINE_IMPL_REF (add_const_rshift_s16_ref, add_const_rshift_s16);
686 lshift_s16_ref(int16_t *d1, int16_t *s1, int16_t *s3_1, int n)
690 d1[i] = s1[i]<<s3_1[0];
693 OIL_DEFINE_IMPL_REF (lshift_s16_ref, lshift_s16);
699 multiply_and_add_s16_ref (int16_t *d, int16_t *src1, int16_t *src2, int16_t *src3, int n)
703 d[i] = src1[i] + src2[i]*src3[i];
706 OIL_DEFINE_IMPL_REF (multiply_and_add_s16_ref, multiply_and_add_s16);
712 multiply_and_add_s16_u8_ref (int16_t *d, int16_t *src1, int16_t *src2,
713 uint8_t *src3, int n)
717 d[i] = src1[i] + src2[i]*src3[i];
720 OIL_DEFINE_IMPL_REF (multiply_and_add_s16_u8_ref, multiply_and_add_s16_u8);
726 multiply_and_acc_6xn_s16_u8_ref (int16_t *i1, int is1, int16_t *s1,
727 int ss1, uint8_t *s2, int ss2, int n)
732 i1[i] += s1[i]*s2[i];
734 i1 = OIL_OFFSET(i1,is1);
735 s1 = OIL_OFFSET(s1,ss1);
736 s2 = OIL_OFFSET(s2,ss2);
739 OIL_DEFINE_IMPL_REF (multiply_and_acc_6xn_s16_u8_ref,
740 multiply_and_acc_6xn_s16_u8);
746 multiply_and_acc_8xn_s16_u8_ref (int16_t *i1, int is1, int16_t *s1,
747 int ss1, uint8_t *s2, int ss2, int n)
752 i1[i] += s1[i]*s2[i];
754 i1 = OIL_OFFSET(i1,is1);
755 s1 = OIL_OFFSET(s1,ss1);
756 s2 = OIL_OFFSET(s2,ss2);
759 OIL_DEFINE_IMPL_REF (multiply_and_acc_8xn_s16_u8_ref,
760 multiply_and_acc_8xn_s16_u8);
766 multiply_and_acc_12xn_s16_u8_ref (int16_t *i1, int is1, int16_t *s1,
767 int ss1, uint8_t *s2, int ss2, int n)
772 i1[i] += s1[i]*s2[i];
774 i1 = OIL_OFFSET(i1,is1);
775 s1 = OIL_OFFSET(s1,ss1);
776 s2 = OIL_OFFSET(s2,ss2);
779 OIL_DEFINE_IMPL_REF (multiply_and_acc_12xn_s16_u8_ref,
780 multiply_and_acc_12xn_s16_u8);
786 multiply_and_acc_16xn_s16_u8_ref (int16_t *i1, int is1, int16_t *s1,
787 int ss1, uint8_t *s2, int ss2, int n)
792 i1[i] += s1[i]*s2[i];
794 i1 = OIL_OFFSET(i1,is1);
795 s1 = OIL_OFFSET(s1,ss1);
796 s2 = OIL_OFFSET(s2,ss2);
799 OIL_DEFINE_IMPL_REF (multiply_and_acc_16xn_s16_u8_ref,
800 multiply_and_acc_16xn_s16_u8);
806 multiply_and_acc_24xn_s16_u8_ref (int16_t *i1, int is1, int16_t *s1,
807 int ss1, uint8_t *s2, int ss2, int n)
812 i1[i] += s1[i]*s2[i];
814 i1 = OIL_OFFSET(i1,is1);
815 s1 = OIL_OFFSET(s1,ss1);
816 s2 = OIL_OFFSET(s2,ss2);
819 OIL_DEFINE_IMPL_REF (multiply_and_acc_24xn_s16_u8_ref,
820 multiply_and_acc_24xn_s16_u8);
826 combine4_8xn_u8_ref (uint8_t *d, int ds1,
827 uint8_t *s1, int ss1,
828 uint8_t *s2, int ss2,
829 uint8_t *s3, int ss3,
830 uint8_t *s4, int ss4,
831 int16_t *s5_6, int n)
838 x += s5_6[0] * s1[i];
839 x += s5_6[1] * s2[i];
840 x += s5_6[2] * s3[i];
841 x += s5_6[3] * s4[i];
842 d[i] = (x + s5_6[4]) >> s5_6[5];
851 OIL_DEFINE_IMPL_REF (combine4_8xn_u8_ref, combine4_8xn_u8);
857 combine4_12xn_u8_ref (uint8_t *d, int ds1,
858 uint8_t *s1, int ss1,
859 uint8_t *s2, int ss2,
860 uint8_t *s3, int ss3,
861 uint8_t *s4, int ss4,
862 int16_t *s5_6, int n)
869 x += s5_6[0] * s1[i];
870 x += s5_6[1] * s2[i];
871 x += s5_6[2] * s3[i];
872 x += s5_6[3] * s4[i];
873 d[i] = (x + s5_6[4]) >> s5_6[5];
882 OIL_DEFINE_IMPL_REF (combine4_12xn_u8_ref, combine4_12xn_u8);
888 combine4_16xn_u8_ref (uint8_t *d, int ds1,
889 uint8_t *s1, int ss1,
890 uint8_t *s2, int ss2,
891 uint8_t *s3, int ss3,
892 uint8_t *s4, int ss4,
893 int16_t *s5_6, int n)
900 x += s5_6[0] * s1[i];
901 x += s5_6[1] * s2[i];
902 x += s5_6[2] * s3[i];
903 x += s5_6[3] * s4[i];
904 d[i] = (x + s5_6[4]) >> s5_6[5];
913 OIL_DEFINE_IMPL_REF (combine4_16xn_u8_ref, combine4_16xn_u8);
919 combine2_8xn_u8_ref (uint8_t *d, int ds1,
920 uint8_t *s1, int ss1,
921 uint8_t *s2, int ss2,
922 int16_t *s3_4, int n)
929 x += s3_4[0] * s1[i];
930 x += s3_4[1] * s2[i];
931 d[i] = (x + s3_4[2]) >> s3_4[3];
938 OIL_DEFINE_IMPL_REF (combine2_8xn_u8_ref, combine2_8xn_u8);
944 combine2_12xn_u8_ref (uint8_t *d, int ds1,
945 uint8_t *s1, int ss1,
946 uint8_t *s2, int ss2,
947 int16_t *s3_4, int n)
954 x += s3_4[0] * s1[i];
955 x += s3_4[1] * s2[i];
956 d[i] = (x + s3_4[2]) >> s3_4[3];
963 OIL_DEFINE_IMPL_REF (combine2_12xn_u8_ref, combine2_12xn_u8);
969 combine2_16xn_u8_ref (uint8_t *d, int ds1,
970 uint8_t *s1, int ss1,
971 uint8_t *s2, int ss2,
972 int16_t *s3_4, int n)
979 x += s3_4[0] * s1[i];
980 x += s3_4[1] * s2[i];
981 d[i] = (x + s3_4[2]) >> s3_4[3];
988 OIL_DEFINE_IMPL_REF (combine2_16xn_u8_ref, combine2_16xn_u8);
994 add2_rshift_add_s16_ref (int16_t *d, int16_t *s1, int16_t *s2, int16_t *s3,
995 int16_t *s4_2, int n)
999 d[i] = s1[i] + ((s2[i] + s3[i] + s4_2[0])>>s4_2[1]);
1002 OIL_DEFINE_IMPL_REF (add2_rshift_add_s16_ref, add2_rshift_add_s16);
1004 #ifdef __SYMBIAN32__
1008 add2_rshift_sub_s16_ref (int16_t *d, int16_t *s1, int16_t *s2, int16_t *s3,
1009 int16_t *s4_2, int n)
1013 d[i] = s1[i] - ((s2[i] + s3[i] + s4_2[0])>>s4_2[1]);
1016 OIL_DEFINE_IMPL_REF (add2_rshift_sub_s16_ref, add2_rshift_sub_s16);
1018 #ifdef __SYMBIAN32__
1022 avg2_8xn_u8_ref (uint8_t *d, int ds1, uint8_t *s1, int ss1,
1023 uint8_t *s2, int ss2, int n)
1029 d[i] = (s1[i] + s2[i] + 1)>>1;
1036 OIL_DEFINE_IMPL_REF (avg2_8xn_u8_ref, avg2_8xn_u8);
1038 #ifdef __SYMBIAN32__
1042 avg2_12xn_u8_ref (uint8_t *d, int ds1, uint8_t *s1, int ss1,
1043 uint8_t *s2, int ss2, int n)
1049 d[i] = (s1[i] + s2[i] + 1)>>1;
1056 OIL_DEFINE_IMPL_REF (avg2_12xn_u8_ref, avg2_12xn_u8);
1058 #ifdef __SYMBIAN32__
1062 avg2_16xn_u8_ref (uint8_t *d, int ds1, uint8_t *s1, int ss1,
1063 uint8_t *s2, int ss2, int n)
1069 d[i] = (s1[i] + s2[i] + 1)>>1;
1076 OIL_DEFINE_IMPL_REF (avg2_16xn_u8_ref, avg2_16xn_u8);
1080 #ifdef __SYMBIAN32__
1082 OilFunctionClass* __oil_function_class_deinterleave() {
1083 return &_oil_function_class_deinterleave;
1087 #ifdef __SYMBIAN32__
1089 OilFunctionClass* __oil_function_class_deinterleave2_s16() {
1090 return &_oil_function_class_deinterleave2_s16;
1094 #ifdef __SYMBIAN32__
1096 OilFunctionClass* __oil_function_class_interleave() {
1097 return &_oil_function_class_interleave;
1101 #ifdef __SYMBIAN32__
1103 OilFunctionClass* __oil_function_class_interleave2_s16() {
1104 return &_oil_function_class_interleave2_s16;
1108 #ifdef __SYMBIAN32__
1110 OilFunctionClass* __oil_function_class_synth_daub97() {
1111 return &_oil_function_class_synth_daub97;
1115 #ifdef __SYMBIAN32__
1117 OilFunctionClass* __oil_function_class_split_daub97() {
1118 return &_oil_function_class_split_daub97;
1122 #ifdef __SYMBIAN32__
1124 OilFunctionClass* __oil_function_class_split_approx97() {
1125 return &_oil_function_class_split_approx97;
1129 #ifdef __SYMBIAN32__
1131 OilFunctionClass* __oil_function_class_synth_approx97() {
1132 return &_oil_function_class_synth_approx97;
1136 #ifdef __SYMBIAN32__
1138 OilFunctionClass* __oil_function_class_split_53() {
1139 return &_oil_function_class_split_53;
1143 #ifdef __SYMBIAN32__
1145 OilFunctionClass* __oil_function_class_synth_53() {
1146 return &_oil_function_class_synth_53;
1150 #ifdef __SYMBIAN32__
1152 OilFunctionClass* __oil_function_class_split_135() {
1153 return &_oil_function_class_split_135;
1157 #ifdef __SYMBIAN32__
1159 OilFunctionClass* __oil_function_class_synth_135() {
1160 return &_oil_function_class_synth_135;
1164 #ifdef __SYMBIAN32__
1166 OilFunctionClass* __oil_function_class_add_const_rshift_s16() {
1167 return &_oil_function_class_add_const_rshift_s16;
1171 #ifdef __SYMBIAN32__
1173 OilFunctionClass* __oil_function_class_lshift_s16() {
1174 return &_oil_function_class_lshift_s16;
1178 #ifdef __SYMBIAN32__
1180 OilFunctionClass* __oil_function_class_multiply_and_add_s16() {
1181 return &_oil_function_class_multiply_and_add_s16;
1185 #ifdef __SYMBIAN32__
1187 OilFunctionClass* __oil_function_class_multiply_and_add_s16_u8() {
1188 return &_oil_function_class_multiply_and_add_s16_u8;
1192 #ifdef __SYMBIAN32__
1194 OilFunctionClass* __oil_function_class_multiply_and_acc_6xn_s16_u8() {
1195 return &_oil_function_class_multiply_and_acc_6xn_s16_u8;
1199 #ifdef __SYMBIAN32__
1201 OilFunctionClass* __oil_function_class_multiply_and_acc_8xn_s16_u8() {
1202 return &_oil_function_class_multiply_and_acc_8xn_s16_u8;
1206 #ifdef __SYMBIAN32__
1208 OilFunctionClass* __oil_function_class_multiply_and_acc_12xn_s16_u8() {
1209 return &_oil_function_class_multiply_and_acc_12xn_s16_u8;
1213 #ifdef __SYMBIAN32__
1215 OilFunctionClass* __oil_function_class_multiply_and_acc_16xn_s16_u8() {
1216 return &_oil_function_class_multiply_and_acc_16xn_s16_u8;
1220 #ifdef __SYMBIAN32__
1222 OilFunctionClass* __oil_function_class_multiply_and_acc_24xn_s16_u8() {
1223 return &_oil_function_class_multiply_and_acc_24xn_s16_u8;
1227 #ifdef __SYMBIAN32__
1229 OilFunctionClass* __oil_function_class_combine2_8xn_u8() {
1230 return &_oil_function_class_combine2_8xn_u8;
1234 #ifdef __SYMBIAN32__
1236 OilFunctionClass* __oil_function_class_combine2_12xn_u8() {
1237 return &_oil_function_class_combine2_12xn_u8;
1241 #ifdef __SYMBIAN32__
1243 OilFunctionClass* __oil_function_class_combine2_16xn_u8() {
1244 return &_oil_function_class_combine2_16xn_u8;
1248 #ifdef __SYMBIAN32__
1250 OilFunctionClass* __oil_function_class_combine4_8xn_u8() {
1251 return &_oil_function_class_combine4_8xn_u8;
1255 #ifdef __SYMBIAN32__
1257 OilFunctionClass* __oil_function_class_combine4_12xn_u8() {
1258 return &_oil_function_class_combine4_12xn_u8;
1262 #ifdef __SYMBIAN32__
1264 OilFunctionClass* __oil_function_class_combine4_16xn_u8() {
1265 return &_oil_function_class_combine4_16xn_u8;
1269 #ifdef __SYMBIAN32__
1271 OilFunctionClass* __oil_function_class_add2_rshift_add_s16() {
1272 return &_oil_function_class_add2_rshift_add_s16;
1276 #ifdef __SYMBIAN32__
1278 OilFunctionClass* __oil_function_class_add2_rshift_sub_s16() {
1279 return &_oil_function_class_add2_rshift_sub_s16;
1283 #ifdef __SYMBIAN32__
1285 OilFunctionClass* __oil_function_class_avg2_8xn_u8() {
1286 return &_oil_function_class_avg2_8xn_u8;
1290 #ifdef __SYMBIAN32__
1292 OilFunctionClass* __oil_function_class_avg2_12xn_u8() {
1293 return &_oil_function_class_avg2_12xn_u8;
1297 #ifdef __SYMBIAN32__
1299 OilFunctionClass* __oil_function_class_avg2_16xn_u8() {
1300 return &_oil_function_class_avg2_16xn_u8;
1304 #ifdef __SYMBIAN32__
1306 OilFunctionClass* __oil_function_class_lift_add_shift1() {
1307 return &_oil_function_class_lift_add_shift1;
1311 #ifdef __SYMBIAN32__
1313 OilFunctionClass* __oil_function_class_lift_sub_shift1() {
1314 return &_oil_function_class_lift_sub_shift1;
1318 #ifdef __SYMBIAN32__
1320 OilFunctionClass* __oil_function_class_lift_add_shift2() {
1321 return &_oil_function_class_lift_add_shift2;
1325 #ifdef __SYMBIAN32__
1327 OilFunctionClass* __oil_function_class_lift_sub_shift2() {
1328 return &_oil_function_class_lift_sub_shift2;
1332 #ifdef __SYMBIAN32__
1334 OilFunctionClass* __oil_function_class_lift_add_mult_shift12() {
1335 return &_oil_function_class_lift_add_mult_shift12;
1339 #ifdef __SYMBIAN32__
1341 OilFunctionClass* __oil_function_class_lift_sub_mult_shift12() {
1342 return &_oil_function_class_lift_sub_mult_shift12;
1346 #ifdef __SYMBIAN32__
1348 OilFunctionClass* __oil_function_class_lift_add_135() {
1349 return &_oil_function_class_lift_add_135;
1353 #ifdef __SYMBIAN32__
1355 OilFunctionClass* __oil_function_class_lift_sub_135() {
1356 return &_oil_function_class_lift_sub_135;
1362 #ifdef __SYMBIAN32__
1364 OilFunctionImpl* __oil_function_impl_deinterleave_ref() {
1365 return &_oil_function_impl_deinterleave_ref;
1369 #ifdef __SYMBIAN32__
1371 OilFunctionImpl* __oil_function_impl_deinterleave2_s16_ref() {
1372 return &_oil_function_impl_deinterleave2_s16_ref;
1376 #ifdef __SYMBIAN32__
1378 OilFunctionImpl* __oil_function_impl_interleave_ref() {
1379 return &_oil_function_impl_interleave_ref;
1383 #ifdef __SYMBIAN32__
1385 OilFunctionImpl* __oil_function_impl_interleave2_s16_ref() {
1386 return &_oil_function_impl_interleave2_s16_ref;
1390 #ifdef __SYMBIAN32__
1392 OilFunctionImpl* __oil_function_impl_synth_daub97_ref() {
1393 return &_oil_function_impl_synth_daub97_ref;
1397 #ifdef __SYMBIAN32__
1399 OilFunctionImpl* __oil_function_impl_split_daub97_ref() {
1400 return &_oil_function_impl_split_daub97_ref;
1404 #ifdef __SYMBIAN32__
1406 OilFunctionImpl* __oil_function_impl_split_approx97_ref() {
1407 return &_oil_function_impl_split_approx97_ref;
1411 #ifdef __SYMBIAN32__
1413 OilFunctionImpl* __oil_function_impl_synth_approx97_ref() {
1414 return &_oil_function_impl_synth_approx97_ref;
1418 #ifdef __SYMBIAN32__
1420 OilFunctionImpl* __oil_function_impl_split_53_ref() {
1421 return &_oil_function_impl_split_53_ref;
1425 #ifdef __SYMBIAN32__
1427 OilFunctionImpl* __oil_function_impl_synth_53_ref() {
1428 return &_oil_function_impl_synth_53_ref;
1432 #ifdef __SYMBIAN32__
1434 OilFunctionImpl* __oil_function_impl_split_135_ref() {
1435 return &_oil_function_impl_split_135_ref;
1439 #ifdef __SYMBIAN32__
1441 OilFunctionImpl* __oil_function_impl_synth_135_ref() {
1442 return &_oil_function_impl_synth_135_ref;
1446 #ifdef __SYMBIAN32__
1448 OilFunctionImpl* __oil_function_impl_lift_add_shift1_ref() {
1449 return &_oil_function_impl_lift_add_shift1_ref;
1453 #ifdef __SYMBIAN32__
1455 OilFunctionImpl* __oil_function_impl_lift_sub_shift1_ref() {
1456 return &_oil_function_impl_lift_sub_shift1_ref;
1460 #ifdef __SYMBIAN32__
1462 OilFunctionImpl* __oil_function_impl_lift_add_shift2_ref() {
1463 return &_oil_function_impl_lift_add_shift2_ref;
1467 #ifdef __SYMBIAN32__
1469 OilFunctionImpl* __oil_function_impl_lift_sub_shift2_ref() {
1470 return &_oil_function_impl_lift_sub_shift2_ref;
1474 #ifdef __SYMBIAN32__
1476 OilFunctionImpl* __oil_function_impl_lift_add_mult_shift12_ref() {
1477 return &_oil_function_impl_lift_add_mult_shift12_ref;
1481 #ifdef __SYMBIAN32__
1483 OilFunctionImpl* __oil_function_impl_lift_sub_mult_shift12_ref() {
1484 return &_oil_function_impl_lift_sub_mult_shift12_ref;
1488 #ifdef __SYMBIAN32__
1490 OilFunctionImpl* __oil_function_impl_lift_add_135_ref() {
1491 return &_oil_function_impl_lift_add_135_ref;
1495 #ifdef __SYMBIAN32__
1497 OilFunctionImpl* __oil_function_impl_lift_sub_135_ref() {
1498 return &_oil_function_impl_lift_sub_135_ref;
1502 #ifdef __SYMBIAN32__
1504 OilFunctionImpl* __oil_function_impl_add_const_rshift_s16_ref() {
1505 return &_oil_function_impl_add_const_rshift_s16_ref;
1509 #ifdef __SYMBIAN32__
1511 OilFunctionImpl* __oil_function_impl_lshift_s16_ref() {
1512 return &_oil_function_impl_lshift_s16_ref;
1516 #ifdef __SYMBIAN32__
1518 OilFunctionImpl* __oil_function_impl_multiply_and_add_s16_ref() {
1519 return &_oil_function_impl_multiply_and_add_s16_ref;
1523 #ifdef __SYMBIAN32__
1525 OilFunctionImpl* __oil_function_impl_multiply_and_add_s16_u8_ref() {
1526 return &_oil_function_impl_multiply_and_add_s16_u8_ref;
1530 #ifdef __SYMBIAN32__
1532 OilFunctionImpl* __oil_function_impl_multiply_and_acc_6xn_s16_u8_ref() {
1533 return &_oil_function_impl_multiply_and_acc_6xn_s16_u8_ref;
1537 #ifdef __SYMBIAN32__
1539 OilFunctionImpl* __oil_function_impl_multiply_and_acc_8xn_s16_u8_ref() {
1540 return &_oil_function_impl_multiply_and_acc_8xn_s16_u8_ref;
1544 #ifdef __SYMBIAN32__
1546 OilFunctionImpl* __oil_function_impl_multiply_and_acc_12xn_s16_u8_ref() {
1547 return &_oil_function_impl_multiply_and_acc_12xn_s16_u8_ref;
1551 #ifdef __SYMBIAN32__
1553 OilFunctionImpl* __oil_function_impl_multiply_and_acc_16xn_s16_u8_ref() {
1554 return &_oil_function_impl_multiply_and_acc_16xn_s16_u8_ref;
1558 #ifdef __SYMBIAN32__
1560 OilFunctionImpl* __oil_function_impl_multiply_and_acc_24xn_s16_u8_ref() {
1561 return &_oil_function_impl_multiply_and_acc_24xn_s16_u8_ref;
1565 #ifdef __SYMBIAN32__
1567 OilFunctionImpl* __oil_function_impl_combine4_8xn_u8_ref() {
1568 return &_oil_function_impl_combine4_8xn_u8_ref;
1572 #ifdef __SYMBIAN32__
1574 OilFunctionImpl* __oil_function_impl_combine4_12xn_u8_ref() {
1575 return &_oil_function_impl_combine4_12xn_u8_ref;
1579 #ifdef __SYMBIAN32__
1581 OilFunctionImpl* __oil_function_impl_combine4_16xn_u8_ref() {
1582 return &_oil_function_impl_combine4_16xn_u8_ref;
1586 #ifdef __SYMBIAN32__
1588 OilFunctionImpl* __oil_function_impl_combine2_8xn_u8_ref() {
1589 return &_oil_function_impl_combine2_8xn_u8_ref;
1593 #ifdef __SYMBIAN32__
1595 OilFunctionImpl* __oil_function_impl_combine2_12xn_u8_ref() {
1596 return &_oil_function_impl_combine2_12xn_u8_ref;
1600 #ifdef __SYMBIAN32__
1602 OilFunctionImpl* __oil_function_impl_combine2_16xn_u8_ref() {
1603 return &_oil_function_impl_combine2_16xn_u8_ref;
1607 #ifdef __SYMBIAN32__
1609 OilFunctionImpl* __oil_function_impl_add2_rshift_add_s16_ref() {
1610 return &_oil_function_impl_add2_rshift_add_s16_ref;
1614 #ifdef __SYMBIAN32__
1616 OilFunctionImpl* __oil_function_impl_add2_rshift_sub_s16_ref() {
1617 return &_oil_function_impl_add2_rshift_sub_s16_ref;
1621 #ifdef __SYMBIAN32__
1623 OilFunctionImpl* __oil_function_impl_avg2_8xn_u8_ref() {
1624 return &_oil_function_impl_avg2_8xn_u8_ref;
1628 #ifdef __SYMBIAN32__
1630 OilFunctionImpl* __oil_function_impl_avg2_12xn_u8_ref() {
1631 return &_oil_function_impl_avg2_12xn_u8_ref;
1635 #ifdef __SYMBIAN32__
1637 OilFunctionImpl* __oil_function_impl_avg2_16xn_u8_ref() {
1638 return &_oil_function_impl_avg2_16xn_u8_ref;
1644 #ifdef __SYMBIAN32__
1646 EXPORT_C void** _oil_function_class_ptr_deinterleave () {
1647 oil_function_class_ptr_deinterleave = __oil_function_class_deinterleave();
1648 return &oil_function_class_ptr_deinterleave->func;
1652 #ifdef __SYMBIAN32__
1654 EXPORT_C void** _oil_function_class_ptr_deinterleave2_s16 () {
1655 oil_function_class_ptr_deinterleave2_s16 = __oil_function_class_deinterleave2_s16();
1656 return &oil_function_class_ptr_deinterleave2_s16->func;
1660 #ifdef __SYMBIAN32__
1662 EXPORT_C void** _oil_function_class_ptr_interleave () {
1663 oil_function_class_ptr_interleave = __oil_function_class_interleave();
1664 return &oil_function_class_ptr_interleave->func;
1668 #ifdef __SYMBIAN32__
1670 EXPORT_C void** _oil_function_class_ptr_interleave2_s16 () {
1671 oil_function_class_ptr_interleave2_s16 = __oil_function_class_interleave2_s16();
1672 return &oil_function_class_ptr_interleave2_s16->func;
1676 #ifdef __SYMBIAN32__
1678 EXPORT_C void** _oil_function_class_ptr_synth_daub97 () {
1679 oil_function_class_ptr_synth_daub97 = __oil_function_class_synth_daub97();
1680 return &oil_function_class_ptr_synth_daub97->func;
1684 #ifdef __SYMBIAN32__
1686 EXPORT_C void** _oil_function_class_ptr_split_daub97 () {
1687 oil_function_class_ptr_split_daub97 = __oil_function_class_split_daub97();
1688 return &oil_function_class_ptr_split_daub97->func;
1692 #ifdef __SYMBIAN32__
1694 EXPORT_C void** _oil_function_class_ptr_split_approx97 () {
1695 oil_function_class_ptr_split_approx97 = __oil_function_class_split_approx97();
1696 return &oil_function_class_ptr_split_approx97->func;
1700 #ifdef __SYMBIAN32__
1702 EXPORT_C void** _oil_function_class_ptr_synth_approx97 () {
1703 oil_function_class_ptr_synth_approx97 = __oil_function_class_synth_approx97();
1704 return &oil_function_class_ptr_synth_approx97->func;
1708 #ifdef __SYMBIAN32__
1710 EXPORT_C void** _oil_function_class_ptr_split_53 () {
1711 oil_function_class_ptr_split_53 = __oil_function_class_split_53();
1712 return &oil_function_class_ptr_split_53->func;
1716 #ifdef __SYMBIAN32__
1718 EXPORT_C void** _oil_function_class_ptr_synth_53 () {
1719 oil_function_class_ptr_synth_53 = __oil_function_class_synth_53();
1720 return &oil_function_class_ptr_synth_53->func;
1724 #ifdef __SYMBIAN32__
1726 EXPORT_C void** _oil_function_class_ptr_split_135 () {
1727 oil_function_class_ptr_split_135 = __oil_function_class_split_135();
1728 return &oil_function_class_ptr_split_135->func;
1732 #ifdef __SYMBIAN32__
1734 EXPORT_C void** _oil_function_class_ptr_synth_135 () {
1735 oil_function_class_ptr_synth_135 = __oil_function_class_synth_135();
1736 return &oil_function_class_ptr_synth_135->func;
1740 #ifdef __SYMBIAN32__
1742 EXPORT_C void** _oil_function_class_ptr_add_const_rshift_s16 () {
1743 oil_function_class_ptr_add_const_rshift_s16 = __oil_function_class_add_const_rshift_s16();
1744 return &oil_function_class_ptr_add_const_rshift_s16->func;
1748 #ifdef __SYMBIAN32__
1750 EXPORT_C void** _oil_function_class_ptr_lshift_s16 () {
1751 oil_function_class_ptr_lshift_s16 = __oil_function_class_lshift_s16();
1752 return &oil_function_class_ptr_lshift_s16->func;
1756 #ifdef __SYMBIAN32__
1758 EXPORT_C void** _oil_function_class_ptr_multiply_and_add_s16 () {
1759 oil_function_class_ptr_multiply_and_add_s16 = __oil_function_class_multiply_and_add_s16();
1760 return &oil_function_class_ptr_multiply_and_add_s16->func;
1764 #ifdef __SYMBIAN32__
1766 EXPORT_C void** _oil_function_class_ptr_multiply_and_add_s16_u8 () {
1767 oil_function_class_ptr_multiply_and_add_s16_u8 = __oil_function_class_multiply_and_add_s16_u8();
1768 return &oil_function_class_ptr_multiply_and_add_s16_u8->func;
1772 #ifdef __SYMBIAN32__
1774 EXPORT_C void** _oil_function_class_ptr_multiply_and_acc_6xn_s16_u8 () {
1775 oil_function_class_ptr_multiply_and_acc_6xn_s16_u8 = __oil_function_class_multiply_and_acc_6xn_s16_u8();
1776 return &oil_function_class_ptr_multiply_and_acc_6xn_s16_u8->func;
1780 #ifdef __SYMBIAN32__
1782 EXPORT_C void** _oil_function_class_ptr_multiply_and_acc_8xn_s16_u8 () {
1783 oil_function_class_ptr_multiply_and_acc_8xn_s16_u8 = __oil_function_class_multiply_and_acc_8xn_s16_u8();
1784 return &oil_function_class_ptr_multiply_and_acc_8xn_s16_u8->func;
1788 #ifdef __SYMBIAN32__
1790 EXPORT_C void** _oil_function_class_ptr_multiply_and_acc_12xn_s16_u8 () {
1791 oil_function_class_ptr_multiply_and_acc_12xn_s16_u8 = __oil_function_class_multiply_and_acc_12xn_s16_u8();
1792 return &oil_function_class_ptr_multiply_and_acc_12xn_s16_u8->func;
1796 #ifdef __SYMBIAN32__
1798 EXPORT_C void** _oil_function_class_ptr_multiply_and_acc_16xn_s16_u8 () {
1799 oil_function_class_ptr_multiply_and_acc_16xn_s16_u8 = __oil_function_class_multiply_and_acc_16xn_s16_u8();
1800 return &oil_function_class_ptr_multiply_and_acc_16xn_s16_u8->func;
1804 #ifdef __SYMBIAN32__
1806 EXPORT_C void** _oil_function_class_ptr_multiply_and_acc_24xn_s16_u8 () {
1807 oil_function_class_ptr_multiply_and_acc_24xn_s16_u8 = __oil_function_class_multiply_and_acc_24xn_s16_u8();
1808 return &oil_function_class_ptr_multiply_and_acc_24xn_s16_u8->func;
1812 #ifdef __SYMBIAN32__
1814 EXPORT_C void** _oil_function_class_ptr_combine2_8xn_u8 () {
1815 oil_function_class_ptr_combine2_8xn_u8 = __oil_function_class_combine2_8xn_u8();
1816 return &oil_function_class_ptr_combine2_8xn_u8->func;
1820 #ifdef __SYMBIAN32__
1822 EXPORT_C void** _oil_function_class_ptr_combine2_12xn_u8 () {
1823 oil_function_class_ptr_combine2_12xn_u8 = __oil_function_class_combine2_12xn_u8();
1824 return &oil_function_class_ptr_combine2_12xn_u8->func;
1828 #ifdef __SYMBIAN32__
1830 EXPORT_C void** _oil_function_class_ptr_combine2_16xn_u8 () {
1831 oil_function_class_ptr_combine2_16xn_u8 = __oil_function_class_combine2_16xn_u8();
1832 return &oil_function_class_ptr_combine2_16xn_u8->func;
1836 #ifdef __SYMBIAN32__
1838 EXPORT_C void** _oil_function_class_ptr_combine4_8xn_u8 () {
1839 oil_function_class_ptr_combine4_8xn_u8 = __oil_function_class_combine4_8xn_u8();
1840 return &oil_function_class_ptr_combine4_8xn_u8->func;
1844 #ifdef __SYMBIAN32__
1846 EXPORT_C void** _oil_function_class_ptr_combine4_12xn_u8 () {
1847 oil_function_class_ptr_combine4_12xn_u8 = __oil_function_class_combine4_12xn_u8();
1848 return &oil_function_class_ptr_combine4_12xn_u8->func;
1852 #ifdef __SYMBIAN32__
1854 EXPORT_C void** _oil_function_class_ptr_combine4_16xn_u8 () {
1855 oil_function_class_ptr_combine4_16xn_u8 = __oil_function_class_combine4_16xn_u8();
1856 return &oil_function_class_ptr_combine4_16xn_u8->func;
1860 #ifdef __SYMBIAN32__
1862 EXPORT_C void** _oil_function_class_ptr_add2_rshift_add_s16 () {
1863 oil_function_class_ptr_add2_rshift_add_s16 = __oil_function_class_add2_rshift_add_s16();
1864 return &oil_function_class_ptr_add2_rshift_add_s16->func;
1868 #ifdef __SYMBIAN32__
1870 EXPORT_C void** _oil_function_class_ptr_add2_rshift_sub_s16 () {
1871 oil_function_class_ptr_add2_rshift_sub_s16 = __oil_function_class_add2_rshift_sub_s16();
1872 return &oil_function_class_ptr_add2_rshift_sub_s16->func;
1876 #ifdef __SYMBIAN32__
1878 EXPORT_C void** _oil_function_class_ptr_avg2_8xn_u8 () {
1879 oil_function_class_ptr_avg2_8xn_u8 = __oil_function_class_avg2_8xn_u8();
1880 return &oil_function_class_ptr_avg2_8xn_u8->func;
1884 #ifdef __SYMBIAN32__
1886 EXPORT_C void** _oil_function_class_ptr_avg2_12xn_u8 () {
1887 oil_function_class_ptr_avg2_12xn_u8 = __oil_function_class_avg2_12xn_u8();
1888 return &oil_function_class_ptr_avg2_12xn_u8->func;
1892 #ifdef __SYMBIAN32__
1894 EXPORT_C void** _oil_function_class_ptr_avg2_16xn_u8 () {
1895 oil_function_class_ptr_avg2_16xn_u8 = __oil_function_class_avg2_16xn_u8();
1896 return &oil_function_class_ptr_avg2_16xn_u8->func;
1900 #ifdef __SYMBIAN32__
1902 EXPORT_C void** _oil_function_class_ptr_lift_add_shift1 () {
1903 oil_function_class_ptr_lift_add_shift1 = __oil_function_class_lift_add_shift1();
1904 return &oil_function_class_ptr_lift_add_shift1->func;
1908 #ifdef __SYMBIAN32__
1910 EXPORT_C void** _oil_function_class_ptr_lift_sub_shift1 () {
1911 oil_function_class_ptr_lift_sub_shift1 = __oil_function_class_lift_sub_shift1();
1912 return &oil_function_class_ptr_lift_sub_shift1->func;
1916 #ifdef __SYMBIAN32__
1918 EXPORT_C void** _oil_function_class_ptr_lift_add_shift2 () {
1919 oil_function_class_ptr_lift_add_shift2 = __oil_function_class_lift_add_shift2();
1920 return &oil_function_class_ptr_lift_add_shift2->func;
1924 #ifdef __SYMBIAN32__
1926 EXPORT_C void** _oil_function_class_ptr_lift_sub_shift2 () {
1927 oil_function_class_ptr_lift_sub_shift2 = __oil_function_class_lift_sub_shift2();
1928 return &oil_function_class_ptr_lift_sub_shift2->func;
1932 #ifdef __SYMBIAN32__
1934 EXPORT_C void** _oil_function_class_ptr_lift_add_mult_shift12 () {
1935 oil_function_class_ptr_lift_add_mult_shift12 = __oil_function_class_lift_add_mult_shift12();
1936 return &oil_function_class_ptr_lift_add_mult_shift12->func;
1940 #ifdef __SYMBIAN32__
1942 EXPORT_C void** _oil_function_class_ptr_lift_sub_mult_shift12 () {
1943 oil_function_class_ptr_lift_sub_mult_shift12 = __oil_function_class_lift_sub_mult_shift12();
1944 return &oil_function_class_ptr_lift_sub_mult_shift12->func;
1948 #ifdef __SYMBIAN32__
1950 EXPORT_C void** _oil_function_class_ptr_lift_add_135 () {
1951 oil_function_class_ptr_lift_add_135 = __oil_function_class_lift_add_135();
1952 return &oil_function_class_ptr_lift_add_135->func;
1956 #ifdef __SYMBIAN32__
1958 EXPORT_C void** _oil_function_class_ptr_lift_sub_135 () {
1959 oil_function_class_ptr_lift_sub_135 = __oil_function_class_lift_sub_135();
1960 return &oil_function_class_ptr_lift_sub_135->func;