os/ossrv/genericopenlibs/liboil/src/ref/mas.c
author sl
Tue, 10 Jun 2014 14:32:02 +0200
changeset 1 260cb5ec6c19
permissions -rw-r--r--
Update contrib.
     1 //Portions Copyright (c)  2008-2009 Nokia Corporation and/or its subsidiary(-ies). All rights reserved. 
     2 /*
     3 Copyright 2002,2003,2004,2005 David A. Schleef <ds@schleef.org>
     4   All rights reserved.
     5   
     6   Redistribution and use in source and binary forms, with or without
     7   modification, are permitted provided that the following conditions
     8   are met:
     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.
    14   
    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.
    26 */
    27 #include <liboil/liboilfunction.h>
    28 #include <liboil/liboiltest.h>
    29 #include <liboil/liboilrandom.h>
    30 
    31 static void
    32 mas_test (OilTest *test)
    33 {
    34   int16_t *data;
    35   int i;
    36   int n;
    37 
    38   data = (int16_t *)oil_test_get_source_data (test, OIL_ARG_SRC1);
    39   for(i=0;i<test->n;i++){
    40     //data[i] = oil_rand_s16()>>1;
    41     data[i] = 0;
    42   }
    43 
    44   data = (int16_t *)oil_test_get_source_data (test, OIL_ARG_SRC2);
    45   for(i=0;i<test->n;i++){
    46     data[i] = oil_rand_s16() >> 4;
    47   }
    48 
    49   data = (int16_t *)oil_test_get_source_data (test, OIL_ARG_SRC3);
    50   n = oil_test_get_arg_post_n (test, OIL_ARG_SRC3);
    51   if (n == 2) {
    52     data[0] = 1;
    53     data[1] = 1;
    54 
    55     data = (int16_t *)oil_test_get_source_data (test, OIL_ARG_SRC4);
    56     data[0] = 1;
    57     data[1] = 1;
    58   } else {
    59     for(i=0;i<n;i++){
    60       data[i] = (oil_rand_s16()>>4)/n;
    61     }
    62 
    63     data = (int16_t *)oil_test_get_source_data (test, OIL_ARG_SRC4);
    64     data[0] = (1<<11);
    65     data[1] = 12;
    66   }
    67 }
    68 
    69 static void
    70 mas2_across_test (OilTest *test)
    71 {
    72   int16_t *data;
    73   int i;
    74   int n;
    75 
    76   data = (int16_t *)oil_test_get_source_data (test, OIL_ARG_SRC1);
    77   for(i=0;i<test->n;i++){
    78     //data[i] = oil_rand_s16()>>1;
    79     data[i] = 0;
    80   }
    81 
    82   data = (int16_t *)oil_test_get_source_data (test, OIL_ARG_SRC2);
    83   for(i=0;i<test->n;i++){
    84     data[i] = oil_rand_s16()>>4;
    85   }
    86 
    87   data = (int16_t *)oil_test_get_source_data (test, OIL_ARG_SRC3);
    88   for(i=0;i<test->n;i++){
    89     data[i] = oil_rand_s16()>>4;
    90   }
    91 
    92   data = (int16_t *)oil_test_get_source_data (test, OIL_ARG_SRC4);
    93   n = oil_test_get_arg_post_n (test, OIL_ARG_SRC4);
    94   for(i=0;i<n;i++){
    95     data[i] = (oil_rand_s16()>>4)/n;
    96   }
    97 
    98   data = (int16_t *)oil_test_get_source_data (test, OIL_ARG_SRC5);
    99   data[0] = (1<<11);
   100   data[1] = 12;
   101 }
   102 
   103 static void
   104 mas48_across_test (OilTest *test)
   105 {
   106   int16_t *data;
   107   int stride;
   108   int i;
   109   int j;
   110   int n;
   111   int m;
   112   int sum;
   113 
   114   data = (int16_t *)oil_test_get_source_data (test, OIL_ARG_SRC1);
   115   for(i=0;i<test->n;i++){
   116     //data[i] = oil_rand_s16()>>1;
   117     data[i] = 0;
   118   }
   119 
   120   data = (int16_t *)oil_test_get_source_data (test, OIL_ARG_SRC2);
   121   m = oil_test_get_arg_post_n (test, OIL_ARG_SRC2);
   122   stride = oil_test_get_arg_stride (test, OIL_ARG_SRC2);
   123   for(j=0;j<m;j++){
   124     for(i=0;i<test->n;i++){
   125       data[i] = oil_rand_s16()>>12;
   126     }
   127     data = OIL_OFFSET(data, stride);
   128   }
   129 
   130   data = (int16_t *)oil_test_get_source_data (test, OIL_ARG_SRC3);
   131   n = oil_test_get_arg_post_n (test, OIL_ARG_SRC3);
   132   sum = 0;
   133 #if 0
   134   if (n==8) {
   135     for(i=0;i<8;i++){
   136       data[i] = 1;
   137     }
   138   } else {
   139     data[0] = -1;
   140     data[1] = 9;
   141     data[2] = 9;
   142     data[3] = -1;
   143   }
   144 #endif
   145   for(i=0;i<n-1;i++){
   146     data[i] = (oil_rand_s16()>>8)/n;
   147     sum += data[i];
   148   }
   149   data[i] = 128 - sum;
   150 
   151   data = (int16_t *)oil_test_get_source_data (test, OIL_ARG_SRC4);
   152   data[0] = (1<<6);
   153   data[1] = 7;
   154 #if 0
   155   data[0] = (1<<(4-1));
   156   data[1] = 4;
   157 #endif
   158 }
   159 
   160 static void
   161 mas10_u8_test (OilTest *test)
   162 {
   163   static const int taps[] = { 3, -11, 25, -56, 167, 167, -56, 25, -11, 3 };
   164   int16_t *data;
   165   int i;
   166 
   167   data = (int16_t *)oil_test_get_source_data (test, OIL_ARG_SRC2);
   168   for(i=0;i<10;i++){
   169     data[i] = taps[i];
   170   }
   171 
   172   data = (int16_t *)oil_test_get_source_data (test, OIL_ARG_SRC3);
   173   data[0] = 128;
   174   data[1] = 8;
   175 }
   176 
   177 static void
   178 mas10_u8_l15_test (OilTest *test)
   179 {
   180   static const int taps[] = { 0, -1, 3, -7, 21, 21, -7, 3, -1, 0 };
   181   int16_t *data;
   182   int i;
   183 
   184   data = (int16_t *)oil_test_get_source_data (test, OIL_ARG_SRC2);
   185   for(i=0;i<10;i++){
   186     data[i] = taps[i];
   187   }
   188 
   189   data = (int16_t *)oil_test_get_source_data (test, OIL_ARG_SRC3);
   190   data[0] = 32;
   191   data[1] = 6;
   192 }
   193 
   194 static void
   195 mas8_u8_test (OilTest *test)
   196 {
   197   static const int taps[] = { -1, 3, -7, 21, 21, -7, 3, -1 };
   198   int16_t *data;
   199   int i;
   200 #if 0
   201   int n;
   202 
   203   data = (int16_t *)oil_test_get_source_data (test, OIL_ARG_SRC1);
   204   n = oil_test_get_arg_post_n (test, OIL_ARG_SRC1);
   205   for(i=0;i<n;i++){
   206     data[i] = 100*((i%8)==4);
   207   }
   208 #endif
   209 
   210   data = (int16_t *)oil_test_get_source_data (test, OIL_ARG_SRC2);
   211   for(i=0;i<8;i++){
   212     data[i] = taps[i];
   213   }
   214 
   215   data = (int16_t *)oil_test_get_source_data (test, OIL_ARG_SRC3);
   216   data[0] = 32;
   217   data[1] = 6;
   218 
   219 }
   220 
   221 static void
   222 mas12_test (OilTest *test)
   223 {
   224   const int taps[12] = { 4, -4, -8, 4, 46, 86, 86, 46, 4, -8, -4, 4 };
   225   int16_t *data;
   226   int i;
   227 
   228   data = (int16_t *)oil_test_get_source_data (test, OIL_ARG_SRC2);
   229   for(i=0;i<12;i++){
   230     data[i] = taps[i];
   231   }
   232 
   233   data = (int16_t *)oil_test_get_source_data (test, OIL_ARG_SRC3);
   234   data[0] = (1<<11);
   235   data[1] = 12;
   236 }
   237 
   238 static void
   239 mas8_test (OilTest *test)
   240 {
   241   const int taps[8] = { -8, 4, 46, 86, 86, 46, 4, -8 };
   242   int16_t *data;
   243   int i;
   244 
   245   data = (int16_t *)oil_test_get_source_data (test, OIL_ARG_SRC2);
   246   for(i=0;i<12;i++){
   247     data[i] = taps[i];
   248   }
   249 
   250   data = (int16_t *)oil_test_get_source_data (test, OIL_ARG_SRC3);
   251   data[0] = (1<<11);
   252   data[1] = 12;
   253 }
   254 
   255 OIL_DEFINE_CLASS_FULL (mas2_add_s16,
   256     "int16_t *d, int16_t *s1, int16_t *s2_np1, int16_t *s3_2, int16_t *s4_2, "
   257     "int n", mas_test);
   258 OIL_DEFINE_CLASS_FULL (mas4_add_s16,
   259     "int16_t *d, int16_t *s1, int16_t *s2_np3, int16_t *s3_4, int16_t *s4_2, "
   260     "int n", mas_test);
   261 OIL_DEFINE_CLASS_FULL (mas8_add_s16,
   262     "int16_t *d, int16_t *s1, int16_t *s2_np7, int16_t *s3_8, int16_t *s4_2, "
   263     "int n", mas_test);
   264 OIL_DEFINE_CLASS_FULL (mas2_across_add_s16,
   265     "int16_t *d, int16_t *s1, int16_t *s2, int16_t *s3, int16_t *s4_2, "
   266     "int16_t *s5_2, int n", mas2_across_test);
   267 OIL_DEFINE_CLASS_FULL (mas4_across_add_s16,
   268     "int16_t *d, int16_t *s1, int16_t *s2_nx4, int sstr2, int16_t *s3_4, "
   269     "int16_t *s4_2, int n", mas48_across_test);
   270 OIL_DEFINE_CLASS_FULL (mas8_across_add_s16,
   271     "int16_t *d, int16_t *s1, int16_t *s2_nx8, int sstr2, int16_t *s3_8, "
   272     "int16_t *s4_2, int n", mas48_across_test);
   273 OIL_DEFINE_CLASS_FULL (mas10_u8, "uint8_t *d, uint8_t *s1_np9, int16_t *s2_10, "
   274     "int16_t *s3_2, int n", mas10_u8_test);
   275 OIL_DEFINE_CLASS_FULL (mas10_u8_l15, "uint8_t *d, uint8_t *s1_np9, int16_t *s2_10, "
   276     "int16_t *s3_2, int n", mas10_u8_l15_test);
   277 OIL_DEFINE_CLASS_FULL (mas10_u8_sym_l15, "uint8_t *d, uint8_t *s1_np9, int16_t *s2_10, "
   278     "int16_t *s3_2, int n", mas10_u8_l15_test);
   279 OIL_DEFINE_CLASS_FULL (mas8_u8, "uint8_t *d, uint8_t *s1_np7, int16_t *s2_8, "
   280     "int16_t *s3_2, int n", mas8_u8_test);
   281 OIL_DEFINE_CLASS_FULL (mas8_u8_l15, "uint8_t *d, uint8_t *s1_np7, int16_t *s2_8, "
   282     "int16_t *s3_2, int n", mas8_u8_test);
   283 OIL_DEFINE_CLASS_FULL (mas8_u8_sym_l15, "uint8_t *d, uint8_t *s1_np7, int16_t *s2_8, "
   284     "int16_t *s3_2, int n", mas8_u8_test);
   285 OIL_DEFINE_CLASS_FULL (mas12_addc_rshift_decim2_u8,
   286     "uint8_t *d, uint8_t *s1_2xnp11, int16_t *s2_12, "
   287     "int16_t *s3_2, int n", mas12_test);
   288 #if 0
   289 OIL_DEFINE_CLASS_FULL (mas12across_addc_rshift_u8,
   290     "uint8_t *d, uint8_t **s1_a12, int16_t *s2_12, "
   291     "int16_t *s3_2, int n", mas12_test);
   292 #endif
   293 OIL_DEFINE_CLASS_FULL (mas8_addc_rshift_decim2_u8,
   294     "uint8_t *d, uint8_t *s1_2xnp9, int16_t *s2_8, "
   295     "int16_t *s3_2, int n", mas8_test);
   296 OIL_DEFINE_CLASS_FULL (mas8_across_u8, "uint8_t *d, uint8_t *s1_nx8, int sstr1, "
   297     "int16_t *s2_8, int16_t *s3_2, int n", mas8_u8_test);
   298 
   299 void
   300 mas2_add_s16_ref(int16_t *d1, int16_t *s1, int16_t *s2, int16_t *s3_2,
   301     int16_t *s4_2, int n)
   302 {
   303   int i;
   304   int x;
   305 
   306   for(i=0;i<n;i++){
   307     x = s4_2[0] + s2[i]*s3_2[0] + s2[i+1]*s3_2[1];
   308     x >>= s4_2[1];
   309     d1[i] = s1[i] + x;
   310   }
   311 }
   312 OIL_DEFINE_IMPL_REF (mas2_add_s16_ref, mas2_add_s16);
   313 
   314 void
   315 mas4_add_s16_ref(int16_t *d1, int16_t *s1, int16_t *s2, int16_t *s3_4,
   316     int16_t *s4_2, int n)
   317 {
   318   int i;
   319   int x;
   320 
   321   for(i=0;i<n;i++){
   322     x = s4_2[0] + s2[i]*s3_4[0] + s2[i+1]*s3_4[1] + s2[i+2]*s3_4[2] +
   323         s2[i+3]*s3_4[3];
   324     x >>= s4_2[1];
   325     d1[i] = s1[i] + x;
   326   }
   327 }
   328 OIL_DEFINE_IMPL_REF (mas4_add_s16_ref, mas4_add_s16);
   329 
   330 void
   331 mas8_add_s16_ref(int16_t *d1, int16_t *s1, int16_t *s2, int16_t *s3_8,
   332     int16_t *s4_2, int n)
   333 {
   334   int i;
   335   int j;
   336   int x;
   337 
   338   for(i=0;i<n;i++){
   339     x = s4_2[0];
   340     for(j=0;j<8;j++){
   341       x += s2[i+j]*s3_8[j];
   342     }
   343     x >>= s4_2[1];
   344     d1[i] = s1[i] + x;
   345   }
   346 }
   347 OIL_DEFINE_IMPL_REF (mas8_add_s16_ref, mas8_add_s16);
   348 
   349 void
   350 mas2_across_add_s16_ref (int16_t *d, int16_t *s1, int16_t *s2, int16_t *s3,
   351     int16_t *s4_2, int16_t *s5_2, int n)
   352 {
   353   int i;
   354   int x;
   355   for(i=0;i<n;i++){
   356     x = s5_2[0];
   357     x += s2[i]*s4_2[0] + s3[i]*s4_2[1];
   358     x >>= s5_2[1];
   359     d[i] = s1[i] + x;
   360   }
   361 }
   362 OIL_DEFINE_IMPL_REF (mas2_across_add_s16_ref, mas2_across_add_s16);
   363 
   364 void
   365 mas4_across_add_s16_ref (int16_t *d, int16_t *s1, int16_t *s2_nx4, int sstr2,
   366     int16_t *s3_4, int16_t *s4_2, int n)
   367 {
   368   int i;
   369   int j;
   370   int x;
   371   for(i=0;i<n;i++){
   372     x = s4_2[0];
   373     for(j=0;j<4;j++){
   374       x += OIL_GET(s2_nx4, i*sizeof(int16_t) + j*sstr2, int16_t)*s3_4[j];
   375     }
   376     x >>= s4_2[1];
   377     d[i] = s1[i] + x;
   378   }
   379 }
   380 OIL_DEFINE_IMPL_REF (mas4_across_add_s16_ref, mas4_across_add_s16);
   381 
   382 void
   383 mas8_across_add_s16_ref (int16_t *d, int16_t *s1, int16_t *s2_nx8, int sstr2,
   384     int16_t *s3_8, int16_t *s4_2, int n)
   385 {
   386   int i;
   387   int j;
   388   int x;
   389   for(i=0;i<n;i++){
   390     x = s4_2[0];
   391     for(j=0;j<8;j++){
   392       x += OIL_GET(s2_nx8, i*sizeof(int16_t) + j*sstr2, int16_t)*s3_8[j];
   393     }
   394     x >>= s4_2[1];
   395     d[i] = s1[i] + x;
   396   }
   397 }
   398 OIL_DEFINE_IMPL_REF (mas8_across_add_s16_ref, mas8_across_add_s16);
   399 
   400 
   401 void
   402 mas10_u8_ref (uint8_t *d, const uint8_t *s1_np9, const int16_t *s2_10,
   403     const int16_t *s3_2, int n)
   404 {
   405   int i;
   406   int j;
   407   int x;
   408 
   409   for(i=0;i<n;i++){
   410     x = 0;
   411     for(j=0;j<10;j++){
   412       x += s1_np9[i+j] * s2_10[j];
   413     }
   414     d[i] = CLAMP((x + s3_2[0])>>s3_2[1],0,255);
   415   }
   416 }
   417 OIL_DEFINE_IMPL_REF (mas10_u8_ref, mas10_u8);
   418 
   419 void
   420 mas10_u8_l15_ref (uint8_t *d, const uint8_t *s1_np9, const int16_t *s2_10,
   421     const int16_t *s3_2, int n)
   422 {
   423   mas10_u8_ref (d, s1_np9, s2_10, s3_2, n);
   424 }
   425 OIL_DEFINE_IMPL_REF (mas10_u8_l15_ref, mas10_u8_l15);
   426 
   427 void
   428 mas10_u8_sym_l15_ref (uint8_t *d, const uint8_t *s1_np9,
   429     const int16_t *s2_10, const int16_t *s3_2, int n)
   430 {
   431   mas10_u8_ref (d, s1_np9, s2_10, s3_2, n);
   432 }
   433 OIL_DEFINE_IMPL_REF (mas10_u8_sym_l15_ref, mas10_u8_sym_l15);
   434 
   435 void
   436 mas8_u8_ref (uint8_t *d, const uint8_t *s1_np7, const int16_t *s2_8,
   437         const int16_t *s3_2, int n)
   438 {
   439   int i;
   440   int j;
   441   int x;
   442 
   443   for(i=0;i<n;i++){
   444     x = 0;
   445     for(j=0;j<8;j++){
   446       x += s1_np7[i+j] * s2_8[j];
   447     }
   448     d[i] = CLAMP((x + s3_2[0])>>s3_2[1],0,255);
   449   }
   450 }
   451 OIL_DEFINE_IMPL_REF (mas8_u8_ref, mas8_u8);
   452 
   453 void
   454 mas8_u8_l15_ref (uint8_t *d, const uint8_t *s1_np7, const int16_t *s2_8,
   455     const int16_t *s3_2, int n)
   456 {
   457   mas8_u8_ref (d, s1_np7, s2_8, s3_2, n);
   458 }
   459 OIL_DEFINE_IMPL_REF (mas8_u8_l15_ref, mas8_u8_l15);
   460 
   461 void
   462 mas8_u8_sym_l15_ref (uint8_t *d, const uint8_t *s1_np7,
   463     const int16_t *s2_8, const int16_t *s3_2, int n)
   464 {
   465   mas8_u8_ref (d, s1_np7, s2_8, s3_2, n);
   466 }
   467 OIL_DEFINE_IMPL_REF (mas8_u8_sym_l15_ref, mas8_u8_sym_l15);
   468 
   469 void
   470 mas8_across_u8_ref (uint8_t *d, uint8_t *s1_nx8, int sstr1,
   471     int16_t *s2_8, int16_t *s3_2, int n)
   472 {
   473   int i;
   474   int j;
   475   int x;
   476   for(i=0;i<n;i++){
   477     x = s3_2[0];
   478     for(j=0;j<8;j++){
   479       x += OIL_GET(s1_nx8, i*sizeof(uint8_t) + j*sstr1, uint8_t)*s2_8[j];
   480     }
   481     x >>= s3_2[1];
   482     d[i] = CLAMP(x,0,255);
   483   }
   484 }
   485 OIL_DEFINE_IMPL_REF (mas8_across_u8_ref, mas8_across_u8);
   486 
   487 static void
   488 mas12_addc_rshift_decim2_u8_ref (uint8_t *dest, const uint8_t *src,
   489     const int16_t *taps, const int16_t *offsetshift, int n)
   490 {
   491   int i;
   492   int j;
   493   int x;
   494 
   495   for(i=0;i<n;i++){
   496     x = 0;
   497     for(j=0;j<12;j++){
   498       x += taps[j]*src[i*2 + j];
   499     }
   500     dest[i] = CLAMP((x + offsetshift[0]) >> offsetshift[1],0,255);
   501   }
   502 }
   503 OIL_DEFINE_IMPL_REF (mas12_addc_rshift_decim2_u8_ref,
   504     mas12_addc_rshift_decim2_u8);
   505 
   506 #if 0
   507 void
   508 mas12across_addc_rshift_u8_ref (uint8_t *dest, uint8_t **src,
   509     const int16_t *taps, const int16_t *offsetshift, int n)
   510 {
   511   int i;
   512   int j;
   513   int x;
   514 
   515   for(i=0;i<n;i++){
   516     x = 0;
   517     for(j=0;j<12;j++){
   518       x += taps[j]*src[j][i];
   519     }
   520     dest[i] = CLAMP((x + offsetshift[0]) >> offsetshift[1],0,255);
   521   }
   522 }
   523 OIL_DEFINE_IMPL_REF (mas12across_addc_rshift_u8_ref,
   524     mas12across_addc_rshift_u8);
   525 #endif
   526 
   527 static void
   528 mas8_addc_rshift_decim2_u8_ref (uint8_t *dest, const uint8_t *src,
   529     const int16_t *taps, const int16_t *offsetshift, int n)
   530 {
   531   int i;
   532   int j;
   533   int x;
   534 
   535   for(i=0;i<n;i++){
   536     x = 0;
   537     for(j=0;j<8;j++){
   538       x += taps[j]*src[i*2 + j];
   539     }
   540     dest[i] = CLAMP((x + offsetshift[0]) >> offsetshift[1],0,255);
   541   }
   542 }
   543 OIL_DEFINE_IMPL_REF (mas8_addc_rshift_decim2_u8_ref,
   544     mas8_addc_rshift_decim2_u8);
   545 
   546 
   547 
   548 #ifdef	__SYMBIAN32__
   549  
   550 OilFunctionClass* __oil_function_class_mas2_add_s16() {
   551 		return &_oil_function_class_mas2_add_s16;
   552 }
   553 #endif
   554 
   555 #ifdef	__SYMBIAN32__
   556  
   557 OilFunctionClass* __oil_function_class_mas4_add_s16() {
   558 		return &_oil_function_class_mas4_add_s16;
   559 }
   560 #endif
   561 
   562 #ifdef	__SYMBIAN32__
   563  
   564 OilFunctionClass* __oil_function_class_mas8_add_s16() {
   565 		return &_oil_function_class_mas8_add_s16;
   566 }
   567 #endif
   568 
   569 #ifdef	__SYMBIAN32__
   570  
   571 OilFunctionClass* __oil_function_class_mas2_across_add_s16() {
   572 		return &_oil_function_class_mas2_across_add_s16;
   573 }
   574 #endif
   575 
   576 #ifdef	__SYMBIAN32__
   577  
   578 OilFunctionClass* __oil_function_class_mas4_across_add_s16() {
   579 		return &_oil_function_class_mas4_across_add_s16;
   580 }
   581 #endif
   582 
   583 #ifdef	__SYMBIAN32__
   584  
   585 OilFunctionClass* __oil_function_class_mas8_across_add_s16() {
   586 		return &_oil_function_class_mas8_across_add_s16;
   587 }
   588 #endif
   589 
   590 #ifdef	__SYMBIAN32__
   591  
   592 OilFunctionClass* __oil_function_class_mas10_u8() {
   593 		return &_oil_function_class_mas10_u8;
   594 }
   595 #endif
   596 
   597 #ifdef	__SYMBIAN32__
   598  
   599 OilFunctionClass* __oil_function_class_mas10_u8_l15() {
   600 		return &_oil_function_class_mas10_u8_l15;
   601 }
   602 #endif
   603 
   604 #ifdef	__SYMBIAN32__
   605  
   606 OilFunctionClass* __oil_function_class_mas10_u8_sym_l15() {
   607 		return &_oil_function_class_mas10_u8_sym_l15;
   608 }
   609 #endif
   610 
   611 #ifdef	__SYMBIAN32__
   612  
   613 OilFunctionClass* __oil_function_class_mas8_u8() {
   614 		return &_oil_function_class_mas8_u8;
   615 }
   616 #endif
   617 
   618 #ifdef	__SYMBIAN32__
   619  
   620 OilFunctionClass* __oil_function_class_mas8_u8_l15() {
   621 		return &_oil_function_class_mas8_u8_l15;
   622 }
   623 #endif
   624 
   625 #ifdef	__SYMBIAN32__
   626  
   627 OilFunctionClass* __oil_function_class_mas8_u8_sym_l15() {
   628 		return &_oil_function_class_mas8_u8_sym_l15;
   629 }
   630 #endif
   631 
   632 #ifdef	__SYMBIAN32__
   633  
   634 OilFunctionClass* __oil_function_class_mas12_addc_rshift_decim2_u8() {
   635 		return &_oil_function_class_mas12_addc_rshift_decim2_u8;
   636 }
   637 #endif
   638 
   639 #if 0
   640 #ifdef	__SYMBIAN32__
   641  
   642 OilFunctionClass* __oil_function_class_mas12across_addc_rshift_u8() {
   643 		return &_oil_function_class_mas12across_addc_rshift_u8;
   644 }
   645 #endif
   646 #endif
   647 
   648 #ifdef	__SYMBIAN32__
   649  
   650 OilFunctionClass* __oil_function_class_mas8_addc_rshift_decim2_u8() {
   651 		return &_oil_function_class_mas8_addc_rshift_decim2_u8;
   652 }
   653 #endif
   654 
   655 #ifdef	__SYMBIAN32__
   656  
   657 OilFunctionClass* __oil_function_class_mas8_across_u8() {
   658 		return &_oil_function_class_mas8_across_u8;
   659 }
   660 #endif
   661 
   662 
   663 
   664 #ifdef	__SYMBIAN32__
   665  
   666 OilFunctionImpl* __oil_function_impl_mas2_add_s16_ref() {
   667 		return &_oil_function_impl_mas2_add_s16_ref;
   668 }
   669 #endif
   670 
   671 #ifdef	__SYMBIAN32__
   672  
   673 OilFunctionImpl* __oil_function_impl_mas4_add_s16_ref() {
   674 		return &_oil_function_impl_mas4_add_s16_ref;
   675 }
   676 #endif
   677 
   678 #ifdef	__SYMBIAN32__
   679  
   680 OilFunctionImpl* __oil_function_impl_mas8_add_s16_ref() {
   681 		return &_oil_function_impl_mas8_add_s16_ref;
   682 }
   683 #endif
   684 
   685 #ifdef	__SYMBIAN32__
   686  
   687 OilFunctionImpl* __oil_function_impl_mas2_across_add_s16_ref() {
   688 		return &_oil_function_impl_mas2_across_add_s16_ref;
   689 }
   690 #endif
   691 
   692 #ifdef	__SYMBIAN32__
   693  
   694 OilFunctionImpl* __oil_function_impl_mas4_across_add_s16_ref() {
   695 		return &_oil_function_impl_mas4_across_add_s16_ref;
   696 }
   697 #endif
   698 
   699 #ifdef	__SYMBIAN32__
   700  
   701 OilFunctionImpl* __oil_function_impl_mas8_across_add_s16_ref() {
   702 		return &_oil_function_impl_mas8_across_add_s16_ref;
   703 }
   704 #endif
   705 
   706 #ifdef	__SYMBIAN32__
   707  
   708 OilFunctionImpl* __oil_function_impl_mas10_u8_ref() {
   709 		return &_oil_function_impl_mas10_u8_ref;
   710 }
   711 #endif
   712 
   713 #ifdef	__SYMBIAN32__
   714  
   715 OilFunctionImpl* __oil_function_impl_mas10_u8_l15_ref() {
   716 		return &_oil_function_impl_mas10_u8_l15_ref;
   717 }
   718 #endif
   719 
   720 #ifdef	__SYMBIAN32__
   721  
   722 OilFunctionImpl* __oil_function_impl_mas10_u8_sym_l15_ref() {
   723 		return &_oil_function_impl_mas10_u8_sym_l15_ref;
   724 }
   725 #endif
   726 
   727 #ifdef	__SYMBIAN32__
   728  
   729 OilFunctionImpl* __oil_function_impl_mas8_u8_ref() {
   730 		return &_oil_function_impl_mas8_u8_ref;
   731 }
   732 #endif
   733 
   734 #ifdef	__SYMBIAN32__
   735  
   736 OilFunctionImpl* __oil_function_impl_mas8_u8_l15_ref() {
   737 		return &_oil_function_impl_mas8_u8_l15_ref;
   738 }
   739 #endif
   740 
   741 #ifdef	__SYMBIAN32__
   742  
   743 OilFunctionImpl* __oil_function_impl_mas8_u8_sym_l15_ref() {
   744 		return &_oil_function_impl_mas8_u8_sym_l15_ref;
   745 }
   746 #endif
   747 
   748 #ifdef	__SYMBIAN32__
   749  
   750 OilFunctionImpl* __oil_function_impl_mas8_across_u8_ref() {
   751 		return &_oil_function_impl_mas8_across_u8_ref;
   752 }
   753 #endif
   754 
   755 #ifdef	__SYMBIAN32__
   756  
   757 OilFunctionImpl* __oil_function_impl_mas12_addc_rshift_decim2_u8_ref() {
   758 		return &_oil_function_impl_mas12_addc_rshift_decim2_u8_ref;
   759 }
   760 #endif
   761 #if 0
   762 #ifdef	__SYMBIAN32__
   763  
   764 OilFunctionImpl* __oil_function_impl_mas12across_addc_rshift_u8_ref() {
   765 		return &_oil_function_impl_mas12across_addc_rshift_u8_ref;
   766 }
   767 #endif
   768 #endif
   769 #ifdef	__SYMBIAN32__
   770  
   771 OilFunctionImpl* __oil_function_impl_mas8_addc_rshift_decim2_u8_ref() {
   772 		return &_oil_function_impl_mas8_addc_rshift_decim2_u8_ref;
   773 }
   774 #endif
   775 
   776 
   777 
   778 #ifdef	__SYMBIAN32__
   779  
   780 EXPORT_C void** _oil_function_class_ptr_mas2_add_s16 ()	{
   781 	oil_function_class_ptr_mas2_add_s16 = __oil_function_class_mas2_add_s16();
   782 	return &oil_function_class_ptr_mas2_add_s16->func;
   783 	}
   784 #endif
   785 
   786 #ifdef	__SYMBIAN32__
   787  
   788 EXPORT_C void** _oil_function_class_ptr_mas4_add_s16 ()	{
   789 	oil_function_class_ptr_mas4_add_s16 = __oil_function_class_mas4_add_s16();
   790 	return &oil_function_class_ptr_mas4_add_s16->func;
   791 	}
   792 #endif
   793 
   794 #ifdef	__SYMBIAN32__
   795  
   796 EXPORT_C void** _oil_function_class_ptr_mas8_add_s16 ()	{
   797 	oil_function_class_ptr_mas8_add_s16 = __oil_function_class_mas8_add_s16();
   798 	return &oil_function_class_ptr_mas8_add_s16->func;
   799 	}
   800 #endif
   801 
   802 #ifdef	__SYMBIAN32__
   803  
   804 EXPORT_C void** _oil_function_class_ptr_mas2_across_add_s16 ()	{
   805 	oil_function_class_ptr_mas2_across_add_s16 = __oil_function_class_mas2_across_add_s16();
   806 	return &oil_function_class_ptr_mas2_across_add_s16->func;
   807 	}
   808 #endif
   809 
   810 #ifdef	__SYMBIAN32__
   811  
   812 EXPORT_C void** _oil_function_class_ptr_mas4_across_add_s16 ()	{
   813 	oil_function_class_ptr_mas4_across_add_s16 = __oil_function_class_mas4_across_add_s16();
   814 	return &oil_function_class_ptr_mas4_across_add_s16->func;
   815 	}
   816 #endif
   817 
   818 #ifdef	__SYMBIAN32__
   819  
   820 EXPORT_C void** _oil_function_class_ptr_mas8_across_add_s16 ()	{
   821 	oil_function_class_ptr_mas8_across_add_s16 = __oil_function_class_mas8_across_add_s16();
   822 	return &oil_function_class_ptr_mas8_across_add_s16->func;
   823 	}
   824 #endif
   825 
   826 #ifdef	__SYMBIAN32__
   827  
   828 EXPORT_C void** _oil_function_class_ptr_mas10_u8 ()	{
   829 	oil_function_class_ptr_mas10_u8 = __oil_function_class_mas10_u8();
   830 	return &oil_function_class_ptr_mas10_u8->func;
   831 	}
   832 #endif
   833 
   834 #ifdef	__SYMBIAN32__
   835  
   836 EXPORT_C void** _oil_function_class_ptr_mas10_u8_l15 ()	{
   837 	oil_function_class_ptr_mas10_u8_l15 = __oil_function_class_mas10_u8_l15();
   838 	return &oil_function_class_ptr_mas10_u8_l15->func;
   839 	}
   840 #endif
   841 
   842 #ifdef	__SYMBIAN32__
   843  
   844 EXPORT_C void** _oil_function_class_ptr_mas10_u8_sym_l15 ()	{
   845 	oil_function_class_ptr_mas10_u8_sym_l15 = __oil_function_class_mas10_u8_sym_l15();
   846 	return &oil_function_class_ptr_mas10_u8_sym_l15->func;
   847 	}
   848 #endif
   849 
   850 #ifdef	__SYMBIAN32__
   851  
   852 EXPORT_C void** _oil_function_class_ptr_mas8_u8 ()	{
   853 	oil_function_class_ptr_mas8_u8 = __oil_function_class_mas8_u8();
   854 	return &oil_function_class_ptr_mas8_u8->func;
   855 	}
   856 #endif
   857 
   858 #ifdef	__SYMBIAN32__
   859  
   860 EXPORT_C void** _oil_function_class_ptr_mas8_u8_l15 ()	{
   861 	oil_function_class_ptr_mas8_u8_l15 = __oil_function_class_mas8_u8_l15();
   862 	return &oil_function_class_ptr_mas8_u8_l15->func;
   863 	}
   864 #endif
   865 
   866 #ifdef	__SYMBIAN32__
   867  
   868 EXPORT_C void** _oil_function_class_ptr_mas8_u8_sym_l15 ()	{
   869 	oil_function_class_ptr_mas8_u8_sym_l15 = __oil_function_class_mas8_u8_sym_l15();
   870 	return &oil_function_class_ptr_mas8_u8_sym_l15->func;
   871 	}
   872 #endif
   873 
   874 #ifdef	__SYMBIAN32__
   875  
   876 EXPORT_C void** _oil_function_class_ptr_mas12_addc_rshift_decim2_u8 ()	{
   877 	oil_function_class_ptr_mas12_addc_rshift_decim2_u8 = __oil_function_class_mas12_addc_rshift_decim2_u8();
   878 	return &oil_function_class_ptr_mas12_addc_rshift_decim2_u8->func;
   879 	}
   880 #endif
   881 
   882 #if 0
   883 #ifdef	__SYMBIAN32__
   884  
   885 EXPORT_C void** _oil_function_class_ptr_mas12across_addc_rshift_u8 ()	{
   886 	oil_function_class_ptr_mas12across_addc_rshift_u8 = __oil_function_class_mas12across_addc_rshift_u8();
   887 	return &oil_function_class_ptr_mas12across_addc_rshift_u8->func;
   888 	}
   889 #endif
   890 #endif
   891 
   892 #ifdef	__SYMBIAN32__
   893  
   894 EXPORT_C void** _oil_function_class_ptr_mas8_addc_rshift_decim2_u8 ()	{
   895 	oil_function_class_ptr_mas8_addc_rshift_decim2_u8 = __oil_function_class_mas8_addc_rshift_decim2_u8();
   896 	return &oil_function_class_ptr_mas8_addc_rshift_decim2_u8->func;
   897 	}
   898 #endif
   899 
   900 #ifdef	__SYMBIAN32__
   901  
   902 EXPORT_C void** _oil_function_class_ptr_mas8_across_u8 ()	{
   903 	oil_function_class_ptr_mas8_across_u8 = __oil_function_class_mas8_across_u8();
   904 	return &oil_function_class_ptr_mas8_across_u8->func;
   905 	}
   906 #endif
   907