00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
#ifndef _QA_COMPLEX_DOTPROD_X86_H_
00023
#define _QA_COMPLEX_DOTPROD_X86_H_
00024
00025
#include <cppunit/TestCase.h>
00026
#include <cppunit/TestCaller.h>
00027
#include <cppunit/TestSuite.h>
00028
#include <cppunit/TextTestResult.h>
00029
00030 class qa_complex_dotprod_x86 :
public CppUnit::TestCase {
00031
00032
public:
00033
00034 static void register_tests (CppUnit::TestSuite *suite)
00035 {
00036 suite->addTest (
new CppUnit::TestCaller<qa_complex_dotprod_x86>
00037 (
"complex_dotprod_x86: t1_3dnowext", &
qa_complex_dotprod_x86::t1_3dnowext));
00038 suite->addTest (
new CppUnit::TestCaller<qa_complex_dotprod_x86>
00039 (
"complex_dotprod_x86: t2_3dnowext", &
qa_complex_dotprod_x86::t2_3dnowext));
00040 suite->addTest (
new CppUnit::TestCaller<qa_complex_dotprod_x86>
00041 (
"complex_dotprod_x86: t3_3dnowext", &
qa_complex_dotprod_x86::t3_3dnowext));
00042
00043 suite->addTest (
new CppUnit::TestCaller<qa_complex_dotprod_x86>
00044 (
"complex_dotprod_x86: t1_3dnow", &
qa_complex_dotprod_x86::t1_3dnow));
00045 suite->addTest (
new CppUnit::TestCaller<qa_complex_dotprod_x86>
00046 (
"complex_dotprod_x86: t2_3dnow", &
qa_complex_dotprod_x86::t2_3dnow));
00047 suite->addTest (
new CppUnit::TestCaller<qa_complex_dotprod_x86>
00048 (
"complex_dotprod_x86: t3_3dnow", &
qa_complex_dotprod_x86::t3_3dnow));
00049
00050 suite->addTest (
new CppUnit::TestCaller<qa_complex_dotprod_x86>
00051 (
"complex_dotprod_x86: t1_sse", &
qa_complex_dotprod_x86::t1_sse));
00052 suite->addTest (
new CppUnit::TestCaller<qa_complex_dotprod_x86>
00053 (
"complex_dotprod_x86: t2_sse", &
qa_complex_dotprod_x86::t2_sse));
00054 suite->addTest (
new CppUnit::TestCaller<qa_complex_dotprod_x86>
00055 (
"complex_dotprod_x86: t3_sse", &
qa_complex_dotprod_x86::t3_sse));
00056 }
00057
00058
void setUp ();
00059
void tearDown ();
00060
00061
private:
00062
00063 typedef void (*
complex_dotprod_t)(
const short *
input,
00064
const float *
taps,
00065
unsigned n_2_complex_blocks,
00066
float *result);
00067
00068
void t1_base (
complex_dotprod_t);
00069
void t2_base (
complex_dotprod_t);
00070
void t3_base (
complex_dotprod_t);
00071
00072
void t1_3dnowext ();
00073
void t2_3dnowext ();
00074
void t3_3dnowext ();
00075
void t1_3dnow ();
00076
void t2_3dnow ();
00077
void t3_3dnow ();
00078
void t1_sse ();
00079
void t2_sse ();
00080
void t3_sse ();
00081
00082
void zb ();
00083
00084 float *
taps;
00085 short *
input;
00086
00087 };
00088
00089
00090
#endif