Git init
[profile/ivi/liboil.git] / testsuite / trans.c
1 /*
2  * LIBOIL - Library of Optimized Inner Loops
3  * Copyright (c) 2004 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
28
29 #ifdef HAVE_CONFIG_H
30 #include "config.h"
31 #endif
32
33 #include <liboil/liboil.h>
34 #include <liboil/liboilfunction.h>
35 #include <stdio.h>
36 #include <string.h>
37 #include <math.h>
38
39 void test(void)
40 {
41   int16_t src2[80];
42   int16_t src1[80];
43   int16_t dest[80];
44   int i;
45   int j;
46
47   for(i=0;i<8;i++){
48     for(j=0;j<8;j++){
49       dest[i*10+j] = 0;
50       //src1[i*10+j] = i*8+j;
51       //src1[i*10+j] = rint(100*cos((j+0.5)*i*M_PI/8));
52       src1[i*10+j] = 100*(i+j);
53       src2[i*10+j] = 2;
54     }
55   }
56
57   oil_fdct8x8s_s16 (dest, 20, src1, 20);
58
59   for(i=0;i<8;i++){
60     for(j=0;j<8;j++){
61       printf("%4d ",src1[i*10+j]);
62     }
63     printf("\n");
64   }
65   printf("\n");
66   for(i=0;i<8;i++){
67     for(j=0;j<8;j++){
68       printf("%4d ",dest[i*10+j]);
69     }
70     printf("\n");
71   }
72 }
73
74 int main (int argc, char *argv[])
75 {
76   OilFunctionClass *klass;
77   //OilFunctionImpl *impl;
78
79   oil_init ();
80
81   klass = oil_class_get ("fdct8x8s_s16");
82
83 #if 0
84   /* FIXME this doesn't check for CPU validity */
85   oil_class_choose_by_name (klass, "fdct8x8s_s16_mmx");
86   impl = klass->chosen_impl;
87   printf("chosen=%p\n", impl);
88   impl = klass->reference_impl;
89   printf("ref=%p\n", impl);
90   test();
91 #endif
92
93   return 0;
94 }
95