00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifndef _QA_CCOMPLEX_DOTPROD_X86_H_
00023 #define _QA_CCOMPLEX_DOTPROD_X86_H_
00024
00025 #include <cppunit/extensions/HelperMacros.h>
00026 #include <cppunit/TestCase.h>
00027
00028 class qa_ccomplex_dotprod_x86 : public CppUnit::TestCase {
00029 public:
00030 void setUp ();
00031 void tearDown ();
00032
00033 CPPUNIT_TEST_SUITE (qa_ccomplex_dotprod_x86);
00034 CPPUNIT_TEST (t1_3dnowext);
00035 CPPUNIT_TEST (t2_3dnowext);
00036 CPPUNIT_TEST (t3_3dnowext);
00037 CPPUNIT_TEST (t1_3dnow);
00038 CPPUNIT_TEST (t2_3dnow);
00039 CPPUNIT_TEST (t3_3dnow);
00040 CPPUNIT_TEST (t1_sse);
00041 CPPUNIT_TEST (t2_sse);
00042 CPPUNIT_TEST (t3_sse);
00043 CPPUNIT_TEST_SUITE_END ();
00044
00045 private:
00046
00047 void t1_3dnowext ();
00048 void t2_3dnowext ();
00049 void t3_3dnowext ();
00050 void t1_3dnow ();
00051 void t2_3dnow ();
00052 void t3_3dnow ();
00053 void t1_sse ();
00054 void t2_sse ();
00055 void t3_sse ();
00056
00057
00058 typedef void (*ccomplex_dotprod_t)(const float *input,
00059 const float *taps,
00060 unsigned n_2_ccomplex_blocks,
00061 float *result);
00062
00063 void t1_base (ccomplex_dotprod_t);
00064 void t2_base (ccomplex_dotprod_t);
00065 void t3_base (ccomplex_dotprod_t);
00066
00067 void zb ();
00068
00069 float *taps;
00070 float *input;
00071 };
00072
00073
00074 #endif