1 
2 // =================================================================================================
3 // This file is part of the CLBlast project. The project is licensed under Apache Version 2.0. This
4 // project loosely follows the Google C++ styleguide and uses a tab-size of two spaces and a max-
5 // width of 100 characters per line.
6 //
7 // Author(s):
8 //   Cedric Nugteren <www.cedricnugteren.nl>
9 //
10 // =================================================================================================
11 
12 #include "test/performance/client.hpp"
13 #include "test/routines/level3/xgemm.hpp"
14 
15 // Main function (not within the clblast namespace)
main(int argc,char * argv[])16 int main(int argc, char *argv[]) {
17   const auto command_line_args = clblast::RetrieveCommandLineArguments(argc, argv);
18   switch(clblast::GetPrecision(command_line_args, clblast::Precision::kSingle)) {
19     case clblast::Precision::kHalf:
20       clblast::RunClient<clblast::TestXgemm<clblast::half>, clblast::half, clblast::half>(argc, argv); break;
21     case clblast::Precision::kSingle:
22       clblast::RunClient<clblast::TestXgemm<float>, float, float>(argc, argv); break;
23     case clblast::Precision::kDouble:
24       clblast::RunClient<clblast::TestXgemm<double>, double, double>(argc, argv); break;
25     case clblast::Precision::kComplexSingle:
26       clblast::RunClient<clblast::TestXgemm<clblast::float2>, clblast::float2, clblast::float2>(argc, argv); break;
27     case clblast::Precision::kComplexDouble:
28       clblast::RunClient<clblast::TestXgemm<clblast::double2>, clblast::double2, clblast::double2>(argc, argv); break;
29   }
30   return 0;
31 }
32 
33 // =================================================================================================
34