From 4796c9bcbd84a9e8be1e2864ba47e0d6bf3e6632 Mon Sep 17 00:00:00 2001 From: CNugteren Date: Fri, 18 Sep 2015 10:19:03 +0200 Subject: Added generated main functions for correctness/performance tests for level 2 routines --- scripts/generator/datatype.py | 9 ++- scripts/generator/generator.py | 99 +++++++++++++++++++++++++++--- test/correctness/routines/level1/xaxpy.cc | 4 -- test/correctness/routines/level1/xcopy.cc | 4 -- test/correctness/routines/level1/xdot.cc | 4 -- test/correctness/routines/level1/xdotc.cc | 6 +- test/correctness/routines/level1/xdotu.cc | 6 +- test/correctness/routines/level1/xscal.cc | 4 -- test/correctness/routines/level1/xswap.cc | 4 -- test/correctness/routines/level2/xgbmv.cc | 28 +++++++++ test/correctness/routines/level2/xgemv.cc | 4 -- test/correctness/routines/level2/xger.cc | 26 ++++++++ test/correctness/routines/level2/xgerc.cc | 26 ++++++++ test/correctness/routines/level2/xgeru.cc | 26 ++++++++ test/correctness/routines/level2/xhbmv.cc | 26 ++++++++ test/correctness/routines/level2/xhemv.cc | 4 -- test/correctness/routines/level2/xher.cc | 26 ++++++++ test/correctness/routines/level2/xher2.cc | 26 ++++++++ test/correctness/routines/level2/xhpmv.cc | 26 ++++++++ test/correctness/routines/level2/xhpr.cc | 26 ++++++++ test/correctness/routines/level2/xhpr2.cc | 26 ++++++++ test/correctness/routines/level2/xsbmv.cc | 26 ++++++++ test/correctness/routines/level2/xspmv.cc | 26 ++++++++ test/correctness/routines/level2/xspr.cc | 26 ++++++++ test/correctness/routines/level2/xspr2.cc | 26 ++++++++ test/correctness/routines/level2/xsymv.cc | 6 +- test/correctness/routines/level2/xsyr.cc | 26 ++++++++ test/correctness/routines/level2/xsyr2.cc | 26 ++++++++ test/correctness/routines/level2/xtbmv.cc | 28 +++++++++ test/correctness/routines/level2/xtbsv.cc | 28 +++++++++ test/correctness/routines/level2/xtpmv.cc | 28 +++++++++ test/correctness/routines/level2/xtpsv.cc | 28 +++++++++ test/correctness/routines/level2/xtrmv.cc | 28 +++++++++ test/correctness/routines/level2/xtrsv.cc | 28 +++++++++ test/correctness/routines/level3/xgemm.cc | 4 -- test/correctness/routines/level3/xhemm.cc | 6 +- test/correctness/routines/level3/xher2k.cc | 4 -- test/correctness/routines/level3/xherk.cc | 4 -- test/correctness/routines/level3/xsymm.cc | 4 -- test/correctness/routines/level3/xsyr2k.cc | 4 -- test/correctness/routines/level3/xsyrk.cc | 4 -- test/correctness/routines/level3/xtrmm.cc | 4 -- test/correctness/routines/level3/xtrsm.cc | 28 +++++++++ test/performance/routines/level1/xaxpy.cc | 7 +-- test/performance/routines/level1/xcopy.cc | 7 +-- test/performance/routines/level1/xdot.cc | 13 +--- test/performance/routines/level1/xdotc.cc | 13 +--- test/performance/routines/level1/xdotu.cc | 13 +--- test/performance/routines/level1/xscal.cc | 7 +-- test/performance/routines/level1/xswap.cc | 7 +-- test/performance/routines/level2/xgbmv.cc | 35 +++++++++++ test/performance/routines/level2/xgemv.cc | 7 +-- test/performance/routines/level2/xger.cc | 33 ++++++++++ test/performance/routines/level2/xgerc.cc | 33 ++++++++++ test/performance/routines/level2/xgeru.cc | 33 ++++++++++ test/performance/routines/level2/xhbmv.cc | 33 ++++++++++ test/performance/routines/level2/xhemv.cc | 13 +--- test/performance/routines/level2/xher.cc | 33 ++++++++++ test/performance/routines/level2/xher2.cc | 33 ++++++++++ test/performance/routines/level2/xhpmv.cc | 33 ++++++++++ test/performance/routines/level2/xhpr.cc | 33 ++++++++++ test/performance/routines/level2/xhpr2.cc | 33 ++++++++++ test/performance/routines/level2/xsbmv.cc | 33 ++++++++++ test/performance/routines/level2/xspmv.cc | 33 ++++++++++ test/performance/routines/level2/xspr.cc | 33 ++++++++++ test/performance/routines/level2/xspr2.cc | 33 ++++++++++ test/performance/routines/level2/xsymv.cc | 15 ++--- test/performance/routines/level2/xsyr.cc | 33 ++++++++++ test/performance/routines/level2/xsyr2.cc | 33 ++++++++++ test/performance/routines/level2/xtbmv.cc | 35 +++++++++++ test/performance/routines/level2/xtbsv.cc | 35 +++++++++++ test/performance/routines/level2/xtpmv.cc | 35 +++++++++++ test/performance/routines/level2/xtpsv.cc | 35 +++++++++++ test/performance/routines/level2/xtrmv.cc | 35 +++++++++++ test/performance/routines/level2/xtrsv.cc | 35 +++++++++++ test/performance/routines/level3/xgemm.cc | 7 +-- test/performance/routines/level3/xhemm.cc | 13 +--- test/performance/routines/level3/xher2k.cc | 13 +--- test/performance/routines/level3/xherk.cc | 13 +--- test/performance/routines/level3/xsymm.cc | 7 +-- test/performance/routines/level3/xsyr2k.cc | 7 +-- test/performance/routines/level3/xsyrk.cc | 7 +-- test/performance/routines/level3/xtrmm.cc | 7 +-- test/performance/routines/level3/xtrsm.cc | 35 +++++++++++ 84 files changed, 1531 insertions(+), 222 deletions(-) create mode 100644 test/correctness/routines/level2/xgbmv.cc create mode 100644 test/correctness/routines/level2/xger.cc create mode 100644 test/correctness/routines/level2/xgerc.cc create mode 100644 test/correctness/routines/level2/xgeru.cc create mode 100644 test/correctness/routines/level2/xhbmv.cc create mode 100644 test/correctness/routines/level2/xher.cc create mode 100644 test/correctness/routines/level2/xher2.cc create mode 100644 test/correctness/routines/level2/xhpmv.cc create mode 100644 test/correctness/routines/level2/xhpr.cc create mode 100644 test/correctness/routines/level2/xhpr2.cc create mode 100644 test/correctness/routines/level2/xsbmv.cc create mode 100644 test/correctness/routines/level2/xspmv.cc create mode 100644 test/correctness/routines/level2/xspr.cc create mode 100644 test/correctness/routines/level2/xspr2.cc create mode 100644 test/correctness/routines/level2/xsyr.cc create mode 100644 test/correctness/routines/level2/xsyr2.cc create mode 100644 test/correctness/routines/level2/xtbmv.cc create mode 100644 test/correctness/routines/level2/xtbsv.cc create mode 100644 test/correctness/routines/level2/xtpmv.cc create mode 100644 test/correctness/routines/level2/xtpsv.cc create mode 100644 test/correctness/routines/level2/xtrmv.cc create mode 100644 test/correctness/routines/level2/xtrsv.cc create mode 100644 test/correctness/routines/level3/xtrsm.cc create mode 100644 test/performance/routines/level2/xgbmv.cc create mode 100644 test/performance/routines/level2/xger.cc create mode 100644 test/performance/routines/level2/xgerc.cc create mode 100644 test/performance/routines/level2/xgeru.cc create mode 100644 test/performance/routines/level2/xhbmv.cc create mode 100644 test/performance/routines/level2/xher.cc create mode 100644 test/performance/routines/level2/xher2.cc create mode 100644 test/performance/routines/level2/xhpmv.cc create mode 100644 test/performance/routines/level2/xhpr.cc create mode 100644 test/performance/routines/level2/xhpr2.cc create mode 100644 test/performance/routines/level2/xsbmv.cc create mode 100644 test/performance/routines/level2/xspmv.cc create mode 100644 test/performance/routines/level2/xspr.cc create mode 100644 test/performance/routines/level2/xspr2.cc create mode 100644 test/performance/routines/level2/xsyr.cc create mode 100644 test/performance/routines/level2/xsyr2.cc create mode 100644 test/performance/routines/level2/xtbmv.cc create mode 100644 test/performance/routines/level2/xtbsv.cc create mode 100644 test/performance/routines/level2/xtpmv.cc create mode 100644 test/performance/routines/level2/xtpsv.cc create mode 100644 test/performance/routines/level2/xtrmv.cc create mode 100644 test/performance/routines/level2/xtrsv.cc create mode 100644 test/performance/routines/level3/xtrsm.cc diff --git a/scripts/generator/datatype.py b/scripts/generator/datatype.py index cca3534d..0aa27197 100644 --- a/scripts/generator/datatype.py +++ b/scripts/generator/datatype.py @@ -29,7 +29,7 @@ class DataType(): self.beta_cpp = scalars[1] self.alpha_cl = scalars[2] self.beta_cl = scalars[3] - self.buffertype = buffertype # Only used for template types + self.buffertype = buffertype # Outputs the name of the data-type (alpha/beta), possibly transforming into the right type def UseAlpha(self): @@ -51,4 +51,11 @@ class DataType(): return self.beta_cl+"{{beta.real(), beta.imag()}}" return "beta" + # Returns the template as used in the correctness/performance tests + def TestTemplate(self): + if self.buffertype != self.beta_cpp: + return "<"+self.buffertype+","+self.beta_cpp+">, "+self.buffertype+", "+self.beta_cpp + return "<"+self.buffertype+">, "+self.buffertype+", "+self.beta_cpp + + # ================================================================================================== diff --git a/scripts/generator/generator.py b/scripts/generator/generator.py index 9c9675b8..677c8afc 100644 --- a/scripts/generator/generator.py +++ b/scripts/generator/generator.py @@ -14,6 +14,9 @@ # clblast_c.h # clblast_c.cc # wrapper_clblas.h +# It also generates the main functions for the correctness and performance tests as found in +# test/correctness/routines/levelX/xYYYY.cc +# test/performance/routines/levelX/xYYYY.cc # # ================================================================================================== @@ -30,12 +33,12 @@ from datatype import DataType, FLT, DBL, FLT2, DBL2, F2CL, D2CL # Regular data-types S = DataType("S", FLT, [FLT, FLT, FLT, FLT], FLT ) # single (32) D = DataType("D", DBL, [DBL, DBL, DBL, DBL], DBL ) # double (64) -C = DataType("C", FLT2, [FLT2, FLT2, F2CL, F2CL], F2CL) # single-complex (3232) -Z = DataType("Z", DBL2, [DBL2, DBL2, D2CL, D2CL], D2CL) # double-complex (6464) +C = DataType("C", FLT2, [FLT2, FLT2, F2CL, F2CL], FLT2) # single-complex (3232) +Z = DataType("Z", DBL2, [DBL2, DBL2, D2CL, D2CL], DBL2) # double-complex (6464) # Special cases -Css = DataType("C", FLT, [FLT, FLT, FLT, FLT], FLT ) # As C, but with constants from S -Zdd = DataType("Z", DBL, [DBL, DBL, DBL, DBL], DBL ) # As Z, but with constants from D +Css = DataType("C", FLT, [FLT, FLT, FLT, FLT], FLT2) # As C, but with constants from S +Zdd = DataType("Z", DBL, [DBL, DBL, DBL, DBL], DBL2) # As Z, but with constants from D Ccs = DataType("C", FLT2+","+FLT, [FLT2, FLT, F2CL, FLT], FLT2) # As C, but with one constant from S Zzd = DataType("Z", DBL2+","+DBL, [DBL2, DBL, D2CL, DBL], DBL2) # As Z, but with one constant from D @@ -115,6 +118,22 @@ separators = [""" // BLAS level-3 (matrix-matrix) routines // ================================================================================================="""] +# Main header/footer for source files +header = """ +// ================================================================================================= +// This file is part of the CLBlast project. The project is licensed under Apache Version 2.0. This +// project loosely follows the Google C++ styleguide and uses a tab-size of two spaces and a max- +// width of 100 characters per line. +// +// Author(s): +// Cedric Nugteren +// +// ================================================================================================= +""" +footer = """ +// ================================================================================================= +""" + # ================================================================================================== # The C++ API header (.h) @@ -235,8 +254,8 @@ for i in xrange(0,len(files)): # Stores the header and the footer of the original file with open(files[i]) as f: original = f.readlines() - header = original[:header_lines[i]] - footer = original[-footer_lines[i]:] + file_header = original[:header_lines[i]] + file_footer = original[-footer_lines[i]:] # Re-writes the body of the file with open(files[i], "w") as f: @@ -253,8 +272,72 @@ for i in xrange(0,len(files)): body += clblast_c_cc(routines[level-1]) if i == 4: body += wrapper_clblas(routines[level-1]) - f.write("".join(header)) + f.write("".join(file_header)) f.write(body) - f.write("".join(footer)) + f.write("".join(file_footer)) + +# ================================================================================================== + +# Outputs all the correctness-test implementations +for level in [1,2,3]: + for routine in routines[level-1]: + filename = path_clblast+"/test/correctness/routines/level"+str(level)+"/x"+routine.name+".cc" + with open(filename, "w") as f: + body = "" + body += "#include \"correctness/testblas.h\"\n" + body += "#include \"routines/level"+str(level)+"/x"+routine.name+".h\"\n\n" + body += "// Shortcuts to the clblast namespace\n" + body += "using float2 = clblast::float2;\n" + body += "using double2 = clblast::double2;\n\n" + body += "// Main function (not within the clblast namespace)\n" + body += "int main(int argc, char *argv[]) {\n" + not_first = "false" + for flavour in routine.flavours: + body += " clblast::RunTests // -// This file implements the tests for the Xaxpy routine. -// // ================================================================================================= #include "correctness/testblas.h" #include "routines/level1/xaxpy.h" -// ================================================================================================= - // Shortcuts to the clblast namespace using float2 = clblast::float2; using double2 = clblast::double2; diff --git a/test/correctness/routines/level1/xcopy.cc b/test/correctness/routines/level1/xcopy.cc index 8a06a722..3e16ffc6 100644 --- a/test/correctness/routines/level1/xcopy.cc +++ b/test/correctness/routines/level1/xcopy.cc @@ -7,15 +7,11 @@ // Author(s): // Cedric Nugteren // -// This file implements the tests for the Xcopy routine. -// // ================================================================================================= #include "correctness/testblas.h" #include "routines/level1/xcopy.h" -// ================================================================================================= - // Shortcuts to the clblast namespace using float2 = clblast::float2; using double2 = clblast::double2; diff --git a/test/correctness/routines/level1/xdot.cc b/test/correctness/routines/level1/xdot.cc index e1b70cb2..5ea105e0 100644 --- a/test/correctness/routines/level1/xdot.cc +++ b/test/correctness/routines/level1/xdot.cc @@ -7,15 +7,11 @@ // Author(s): // Cedric Nugteren // -// This file implements the tests for the Xdot routine. -// // ================================================================================================= #include "correctness/testblas.h" #include "routines/level1/xdot.h" -// ================================================================================================= - // Shortcuts to the clblast namespace using float2 = clblast::float2; using double2 = clblast::double2; diff --git a/test/correctness/routines/level1/xdotc.cc b/test/correctness/routines/level1/xdotc.cc index 15a2f88b..76aaa0ec 100644 --- a/test/correctness/routines/level1/xdotc.cc +++ b/test/correctness/routines/level1/xdotc.cc @@ -7,22 +7,18 @@ // Author(s): // Cedric Nugteren // -// This file implements the tests for the Xdotc routine. -// // ================================================================================================= #include "correctness/testblas.h" #include "routines/level1/xdotc.h" -// ================================================================================================= - // Shortcuts to the clblast namespace using float2 = clblast::float2; using double2 = clblast::double2; // Main function (not within the clblast namespace) int main(int argc, char *argv[]) { - clblast::RunTests, float2, float2>(argc, argv, true, "CDOTC"); + clblast::RunTests, float2, float2>(argc, argv, false, "CDOTC"); clblast::RunTests, double2, double2>(argc, argv, true, "ZDOTC"); return 0; } diff --git a/test/correctness/routines/level1/xdotu.cc b/test/correctness/routines/level1/xdotu.cc index c8af0388..aecde4f5 100644 --- a/test/correctness/routines/level1/xdotu.cc +++ b/test/correctness/routines/level1/xdotu.cc @@ -7,22 +7,18 @@ // Author(s): // Cedric Nugteren // -// This file implements the tests for the Xdotu routine. -// // ================================================================================================= #include "correctness/testblas.h" #include "routines/level1/xdotu.h" -// ================================================================================================= - // Shortcuts to the clblast namespace using float2 = clblast::float2; using double2 = clblast::double2; // Main function (not within the clblast namespace) int main(int argc, char *argv[]) { - clblast::RunTests, float2, float2>(argc, argv, true, "CDOTU"); + clblast::RunTests, float2, float2>(argc, argv, false, "CDOTU"); clblast::RunTests, double2, double2>(argc, argv, true, "ZDOTU"); return 0; } diff --git a/test/correctness/routines/level1/xscal.cc b/test/correctness/routines/level1/xscal.cc index ceb1b7cd..4d138fad 100644 --- a/test/correctness/routines/level1/xscal.cc +++ b/test/correctness/routines/level1/xscal.cc @@ -7,15 +7,11 @@ // Author(s): // Cedric Nugteren // -// This file implements the tests for the Xscal routine. -// // ================================================================================================= #include "correctness/testblas.h" #include "routines/level1/xscal.h" -// ================================================================================================= - // Shortcuts to the clblast namespace using float2 = clblast::float2; using double2 = clblast::double2; diff --git a/test/correctness/routines/level1/xswap.cc b/test/correctness/routines/level1/xswap.cc index 140ccf24..38f110f7 100644 --- a/test/correctness/routines/level1/xswap.cc +++ b/test/correctness/routines/level1/xswap.cc @@ -7,15 +7,11 @@ // Author(s): // Cedric Nugteren // -// This file implements the tests for the Xswap routine. -// // ================================================================================================= #include "correctness/testblas.h" #include "routines/level1/xswap.h" -// ================================================================================================= - // Shortcuts to the clblast namespace using float2 = clblast::float2; using double2 = clblast::double2; diff --git a/test/correctness/routines/level2/xgbmv.cc b/test/correctness/routines/level2/xgbmv.cc new file mode 100644 index 00000000..b28c5978 --- /dev/null +++ b/test/correctness/routines/level2/xgbmv.cc @@ -0,0 +1,28 @@ + +// ================================================================================================= +// This file is part of the CLBlast project. The project is licensed under Apache Version 2.0. This +// project loosely follows the Google C++ styleguide and uses a tab-size of two spaces and a max- +// width of 100 characters per line. +// +// Author(s): +// Cedric Nugteren +// +// ================================================================================================= + +#include "correctness/testblas.h" +#include "routines/level2/xgbmv.h" + +// Shortcuts to the clblast namespace +using float2 = clblast::float2; +using double2 = clblast::double2; + +// Main function (not within the clblast namespace) +int main(int argc, char *argv[]) { + clblast::RunTests, float, float>(argc, argv, false, "SGBMV"); + clblast::RunTests, double, double>(argc, argv, true, "DGBMV"); + clblast::RunTests, float2, float2>(argc, argv, true, "CGBMV"); + clblast::RunTests, double2, double2>(argc, argv, true, "ZGBMV"); + return 0; +} + +// ================================================================================================= diff --git a/test/correctness/routines/level2/xgemv.cc b/test/correctness/routines/level2/xgemv.cc index f7229735..14eb74d1 100644 --- a/test/correctness/routines/level2/xgemv.cc +++ b/test/correctness/routines/level2/xgemv.cc @@ -7,15 +7,11 @@ // Author(s): // Cedric Nugteren // -// This file implements the tests for the Xgemv routine. -// // ================================================================================================= #include "correctness/testblas.h" #include "routines/level2/xgemv.h" -// ================================================================================================= - // Shortcuts to the clblast namespace using float2 = clblast::float2; using double2 = clblast::double2; diff --git a/test/correctness/routines/level2/xger.cc b/test/correctness/routines/level2/xger.cc new file mode 100644 index 00000000..c37a5c41 --- /dev/null +++ b/test/correctness/routines/level2/xger.cc @@ -0,0 +1,26 @@ + +// ================================================================================================= +// This file is part of the CLBlast project. The project is licensed under Apache Version 2.0. This +// project loosely follows the Google C++ styleguide and uses a tab-size of two spaces and a max- +// width of 100 characters per line. +// +// Author(s): +// Cedric Nugteren +// +// ================================================================================================= + +#include "correctness/testblas.h" +#include "routines/level2/xger.h" + +// Shortcuts to the clblast namespace +using float2 = clblast::float2; +using double2 = clblast::double2; + +// Main function (not within the clblast namespace) +int main(int argc, char *argv[]) { + clblast::RunTests, float, float>(argc, argv, false, "SGER"); + clblast::RunTests, double, double>(argc, argv, true, "DGER"); + return 0; +} + +// ================================================================================================= diff --git a/test/correctness/routines/level2/xgerc.cc b/test/correctness/routines/level2/xgerc.cc new file mode 100644 index 00000000..8fd31142 --- /dev/null +++ b/test/correctness/routines/level2/xgerc.cc @@ -0,0 +1,26 @@ + +// ================================================================================================= +// This file is part of the CLBlast project. The project is licensed under Apache Version 2.0. This +// project loosely follows the Google C++ styleguide and uses a tab-size of two spaces and a max- +// width of 100 characters per line. +// +// Author(s): +// Cedric Nugteren +// +// ================================================================================================= + +#include "correctness/testblas.h" +#include "routines/level2/xgerc.h" + +// Shortcuts to the clblast namespace +using float2 = clblast::float2; +using double2 = clblast::double2; + +// Main function (not within the clblast namespace) +int main(int argc, char *argv[]) { + clblast::RunTests, float2, float2>(argc, argv, false, "CGERC"); + clblast::RunTests, double2, double2>(argc, argv, true, "ZGERC"); + return 0; +} + +// ================================================================================================= diff --git a/test/correctness/routines/level2/xgeru.cc b/test/correctness/routines/level2/xgeru.cc new file mode 100644 index 00000000..ee92416b --- /dev/null +++ b/test/correctness/routines/level2/xgeru.cc @@ -0,0 +1,26 @@ + +// ================================================================================================= +// This file is part of the CLBlast project. The project is licensed under Apache Version 2.0. This +// project loosely follows the Google C++ styleguide and uses a tab-size of two spaces and a max- +// width of 100 characters per line. +// +// Author(s): +// Cedric Nugteren +// +// ================================================================================================= + +#include "correctness/testblas.h" +#include "routines/level2/xgeru.h" + +// Shortcuts to the clblast namespace +using float2 = clblast::float2; +using double2 = clblast::double2; + +// Main function (not within the clblast namespace) +int main(int argc, char *argv[]) { + clblast::RunTests, float2, float2>(argc, argv, false, "CGERU"); + clblast::RunTests, double2, double2>(argc, argv, true, "ZGERU"); + return 0; +} + +// ================================================================================================= diff --git a/test/correctness/routines/level2/xhbmv.cc b/test/correctness/routines/level2/xhbmv.cc new file mode 100644 index 00000000..4cd137a7 --- /dev/null +++ b/test/correctness/routines/level2/xhbmv.cc @@ -0,0 +1,26 @@ + +// ================================================================================================= +// This file is part of the CLBlast project. The project is licensed under Apache Version 2.0. This +// project loosely follows the Google C++ styleguide and uses a tab-size of two spaces and a max- +// width of 100 characters per line. +// +// Author(s): +// Cedric Nugteren +// +// ================================================================================================= + +#include "correctness/testblas.h" +#include "routines/level2/xhbmv.h" + +// Shortcuts to the clblast namespace +using float2 = clblast::float2; +using double2 = clblast::double2; + +// Main function (not within the clblast namespace) +int main(int argc, char *argv[]) { + clblast::RunTests, float2, float2>(argc, argv, false, "CHBMV"); + clblast::RunTests, double2, double2>(argc, argv, true, "ZHBMV"); + return 0; +} + +// ================================================================================================= diff --git a/test/correctness/routines/level2/xhemv.cc b/test/correctness/routines/level2/xhemv.cc index 183aebc2..20c5370c 100644 --- a/test/correctness/routines/level2/xhemv.cc +++ b/test/correctness/routines/level2/xhemv.cc @@ -7,15 +7,11 @@ // Author(s): // Cedric Nugteren // -// This file implements the tests for the Xhemv routine. -// // ================================================================================================= #include "correctness/testblas.h" #include "routines/level2/xhemv.h" -// ================================================================================================= - // Shortcuts to the clblast namespace using float2 = clblast::float2; using double2 = clblast::double2; diff --git a/test/correctness/routines/level2/xher.cc b/test/correctness/routines/level2/xher.cc new file mode 100644 index 00000000..5b9b48be --- /dev/null +++ b/test/correctness/routines/level2/xher.cc @@ -0,0 +1,26 @@ + +// ================================================================================================= +// This file is part of the CLBlast project. The project is licensed under Apache Version 2.0. This +// project loosely follows the Google C++ styleguide and uses a tab-size of two spaces and a max- +// width of 100 characters per line. +// +// Author(s): +// Cedric Nugteren +// +// ================================================================================================= + +#include "correctness/testblas.h" +#include "routines/level2/xher.h" + +// Shortcuts to the clblast namespace +using float2 = clblast::float2; +using double2 = clblast::double2; + +// Main function (not within the clblast namespace) +int main(int argc, char *argv[]) { + clblast::RunTests, float2, float>(argc, argv, false, "CHER"); + clblast::RunTests, double2, double>(argc, argv, true, "ZHER"); + return 0; +} + +// ================================================================================================= diff --git a/test/correctness/routines/level2/xher2.cc b/test/correctness/routines/level2/xher2.cc new file mode 100644 index 00000000..093b3959 --- /dev/null +++ b/test/correctness/routines/level2/xher2.cc @@ -0,0 +1,26 @@ + +// ================================================================================================= +// This file is part of the CLBlast project. The project is licensed under Apache Version 2.0. This +// project loosely follows the Google C++ styleguide and uses a tab-size of two spaces and a max- +// width of 100 characters per line. +// +// Author(s): +// Cedric Nugteren +// +// ================================================================================================= + +#include "correctness/testblas.h" +#include "routines/level2/xher2.h" + +// Shortcuts to the clblast namespace +using float2 = clblast::float2; +using double2 = clblast::double2; + +// Main function (not within the clblast namespace) +int main(int argc, char *argv[]) { + clblast::RunTests, float2, float2>(argc, argv, false, "CHER2"); + clblast::RunTests, double2, double2>(argc, argv, true, "ZHER2"); + return 0; +} + +// ================================================================================================= diff --git a/test/correctness/routines/level2/xhpmv.cc b/test/correctness/routines/level2/xhpmv.cc new file mode 100644 index 00000000..cbf41443 --- /dev/null +++ b/test/correctness/routines/level2/xhpmv.cc @@ -0,0 +1,26 @@ + +// ================================================================================================= +// This file is part of the CLBlast project. The project is licensed under Apache Version 2.0. This +// project loosely follows the Google C++ styleguide and uses a tab-size of two spaces and a max- +// width of 100 characters per line. +// +// Author(s): +// Cedric Nugteren +// +// ================================================================================================= + +#include "correctness/testblas.h" +#include "routines/level2/xhpmv.h" + +// Shortcuts to the clblast namespace +using float2 = clblast::float2; +using double2 = clblast::double2; + +// Main function (not within the clblast namespace) +int main(int argc, char *argv[]) { + clblast::RunTests, float2, float2>(argc, argv, false, "CHPMV"); + clblast::RunTests, double2, double2>(argc, argv, true, "ZHPMV"); + return 0; +} + +// ================================================================================================= diff --git a/test/correctness/routines/level2/xhpr.cc b/test/correctness/routines/level2/xhpr.cc new file mode 100644 index 00000000..a720aaef --- /dev/null +++ b/test/correctness/routines/level2/xhpr.cc @@ -0,0 +1,26 @@ + +// ================================================================================================= +// This file is part of the CLBlast project. The project is licensed under Apache Version 2.0. This +// project loosely follows the Google C++ styleguide and uses a tab-size of two spaces and a max- +// width of 100 characters per line. +// +// Author(s): +// Cedric Nugteren +// +// ================================================================================================= + +#include "correctness/testblas.h" +#include "routines/level2/xhpr.h" + +// Shortcuts to the clblast namespace +using float2 = clblast::float2; +using double2 = clblast::double2; + +// Main function (not within the clblast namespace) +int main(int argc, char *argv[]) { + clblast::RunTests, float2, float>(argc, argv, false, "CHPR"); + clblast::RunTests, double2, double>(argc, argv, true, "ZHPR"); + return 0; +} + +// ================================================================================================= diff --git a/test/correctness/routines/level2/xhpr2.cc b/test/correctness/routines/level2/xhpr2.cc new file mode 100644 index 00000000..0fed97e1 --- /dev/null +++ b/test/correctness/routines/level2/xhpr2.cc @@ -0,0 +1,26 @@ + +// ================================================================================================= +// This file is part of the CLBlast project. The project is licensed under Apache Version 2.0. This +// project loosely follows the Google C++ styleguide and uses a tab-size of two spaces and a max- +// width of 100 characters per line. +// +// Author(s): +// Cedric Nugteren +// +// ================================================================================================= + +#include "correctness/testblas.h" +#include "routines/level2/xhpr2.h" + +// Shortcuts to the clblast namespace +using float2 = clblast::float2; +using double2 = clblast::double2; + +// Main function (not within the clblast namespace) +int main(int argc, char *argv[]) { + clblast::RunTests, float2, float2>(argc, argv, false, "CHPR2"); + clblast::RunTests, double2, double2>(argc, argv, true, "ZHPR2"); + return 0; +} + +// ================================================================================================= diff --git a/test/correctness/routines/level2/xsbmv.cc b/test/correctness/routines/level2/xsbmv.cc new file mode 100644 index 00000000..212e2c3a --- /dev/null +++ b/test/correctness/routines/level2/xsbmv.cc @@ -0,0 +1,26 @@ + +// ================================================================================================= +// This file is part of the CLBlast project. The project is licensed under Apache Version 2.0. This +// project loosely follows the Google C++ styleguide and uses a tab-size of two spaces and a max- +// width of 100 characters per line. +// +// Author(s): +// Cedric Nugteren +// +// ================================================================================================= + +#include "correctness/testblas.h" +#include "routines/level2/xsbmv.h" + +// Shortcuts to the clblast namespace +using float2 = clblast::float2; +using double2 = clblast::double2; + +// Main function (not within the clblast namespace) +int main(int argc, char *argv[]) { + clblast::RunTests, float, float>(argc, argv, false, "SSBMV"); + clblast::RunTests, double, double>(argc, argv, true, "DSBMV"); + return 0; +} + +// ================================================================================================= diff --git a/test/correctness/routines/level2/xspmv.cc b/test/correctness/routines/level2/xspmv.cc new file mode 100644 index 00000000..dc833024 --- /dev/null +++ b/test/correctness/routines/level2/xspmv.cc @@ -0,0 +1,26 @@ + +// ================================================================================================= +// This file is part of the CLBlast project. The project is licensed under Apache Version 2.0. This +// project loosely follows the Google C++ styleguide and uses a tab-size of two spaces and a max- +// width of 100 characters per line. +// +// Author(s): +// Cedric Nugteren +// +// ================================================================================================= + +#include "correctness/testblas.h" +#include "routines/level2/xspmv.h" + +// Shortcuts to the clblast namespace +using float2 = clblast::float2; +using double2 = clblast::double2; + +// Main function (not within the clblast namespace) +int main(int argc, char *argv[]) { + clblast::RunTests, float, float>(argc, argv, false, "SSPMV"); + clblast::RunTests, double, double>(argc, argv, true, "DSPMV"); + return 0; +} + +// ================================================================================================= diff --git a/test/correctness/routines/level2/xspr.cc b/test/correctness/routines/level2/xspr.cc new file mode 100644 index 00000000..a0104dd4 --- /dev/null +++ b/test/correctness/routines/level2/xspr.cc @@ -0,0 +1,26 @@ + +// ================================================================================================= +// This file is part of the CLBlast project. The project is licensed under Apache Version 2.0. This +// project loosely follows the Google C++ styleguide and uses a tab-size of two spaces and a max- +// width of 100 characters per line. +// +// Author(s): +// Cedric Nugteren +// +// ================================================================================================= + +#include "correctness/testblas.h" +#include "routines/level2/xspr.h" + +// Shortcuts to the clblast namespace +using float2 = clblast::float2; +using double2 = clblast::double2; + +// Main function (not within the clblast namespace) +int main(int argc, char *argv[]) { + clblast::RunTests, float, float>(argc, argv, false, "SSPR"); + clblast::RunTests, double, double>(argc, argv, true, "DSPR"); + return 0; +} + +// ================================================================================================= diff --git a/test/correctness/routines/level2/xspr2.cc b/test/correctness/routines/level2/xspr2.cc new file mode 100644 index 00000000..5fe5827f --- /dev/null +++ b/test/correctness/routines/level2/xspr2.cc @@ -0,0 +1,26 @@ + +// ================================================================================================= +// This file is part of the CLBlast project. The project is licensed under Apache Version 2.0. This +// project loosely follows the Google C++ styleguide and uses a tab-size of two spaces and a max- +// width of 100 characters per line. +// +// Author(s): +// Cedric Nugteren +// +// ================================================================================================= + +#include "correctness/testblas.h" +#include "routines/level2/xspr2.h" + +// Shortcuts to the clblast namespace +using float2 = clblast::float2; +using double2 = clblast::double2; + +// Main function (not within the clblast namespace) +int main(int argc, char *argv[]) { + clblast::RunTests, float, float>(argc, argv, false, "SSPR2"); + clblast::RunTests, double, double>(argc, argv, true, "DSPR2"); + return 0; +} + +// ================================================================================================= diff --git a/test/correctness/routines/level2/xsymv.cc b/test/correctness/routines/level2/xsymv.cc index a479b999..6224739f 100644 --- a/test/correctness/routines/level2/xsymv.cc +++ b/test/correctness/routines/level2/xsymv.cc @@ -7,14 +7,14 @@ // Author(s): // Cedric Nugteren // -// This file implements the tests for the Xsymv routine. -// // ================================================================================================= #include "correctness/testblas.h" #include "routines/level2/xsymv.h" -// ================================================================================================= +// Shortcuts to the clblast namespace +using float2 = clblast::float2; +using double2 = clblast::double2; // Main function (not within the clblast namespace) int main(int argc, char *argv[]) { diff --git a/test/correctness/routines/level2/xsyr.cc b/test/correctness/routines/level2/xsyr.cc new file mode 100644 index 00000000..a47b918f --- /dev/null +++ b/test/correctness/routines/level2/xsyr.cc @@ -0,0 +1,26 @@ + +// ================================================================================================= +// This file is part of the CLBlast project. The project is licensed under Apache Version 2.0. This +// project loosely follows the Google C++ styleguide and uses a tab-size of two spaces and a max- +// width of 100 characters per line. +// +// Author(s): +// Cedric Nugteren +// +// ================================================================================================= + +#include "correctness/testblas.h" +#include "routines/level2/xsyr.h" + +// Shortcuts to the clblast namespace +using float2 = clblast::float2; +using double2 = clblast::double2; + +// Main function (not within the clblast namespace) +int main(int argc, char *argv[]) { + clblast::RunTests, float, float>(argc, argv, false, "SSYR"); + clblast::RunTests, double, double>(argc, argv, true, "DSYR"); + return 0; +} + +// ================================================================================================= diff --git a/test/correctness/routines/level2/xsyr2.cc b/test/correctness/routines/level2/xsyr2.cc new file mode 100644 index 00000000..1743632c --- /dev/null +++ b/test/correctness/routines/level2/xsyr2.cc @@ -0,0 +1,26 @@ + +// ================================================================================================= +// This file is part of the CLBlast project. The project is licensed under Apache Version 2.0. This +// project loosely follows the Google C++ styleguide and uses a tab-size of two spaces and a max- +// width of 100 characters per line. +// +// Author(s): +// Cedric Nugteren +// +// ================================================================================================= + +#include "correctness/testblas.h" +#include "routines/level2/xsyr2.h" + +// Shortcuts to the clblast namespace +using float2 = clblast::float2; +using double2 = clblast::double2; + +// Main function (not within the clblast namespace) +int main(int argc, char *argv[]) { + clblast::RunTests, float, float>(argc, argv, false, "SSYR2"); + clblast::RunTests, double, double>(argc, argv, true, "DSYR2"); + return 0; +} + +// ================================================================================================= diff --git a/test/correctness/routines/level2/xtbmv.cc b/test/correctness/routines/level2/xtbmv.cc new file mode 100644 index 00000000..d3bbbade --- /dev/null +++ b/test/correctness/routines/level2/xtbmv.cc @@ -0,0 +1,28 @@ + +// ================================================================================================= +// This file is part of the CLBlast project. The project is licensed under Apache Version 2.0. This +// project loosely follows the Google C++ styleguide and uses a tab-size of two spaces and a max- +// width of 100 characters per line. +// +// Author(s): +// Cedric Nugteren +// +// ================================================================================================= + +#include "correctness/testblas.h" +#include "routines/level2/xtbmv.h" + +// Shortcuts to the clblast namespace +using float2 = clblast::float2; +using double2 = clblast::double2; + +// Main function (not within the clblast namespace) +int main(int argc, char *argv[]) { + clblast::RunTests, float, float>(argc, argv, false, "STBMV"); + clblast::RunTests, double, double>(argc, argv, true, "DTBMV"); + clblast::RunTests, float2, float2>(argc, argv, true, "CTBMV"); + clblast::RunTests, double2, double2>(argc, argv, true, "ZTBMV"); + return 0; +} + +// ================================================================================================= diff --git a/test/correctness/routines/level2/xtbsv.cc b/test/correctness/routines/level2/xtbsv.cc new file mode 100644 index 00000000..c8a8a583 --- /dev/null +++ b/test/correctness/routines/level2/xtbsv.cc @@ -0,0 +1,28 @@ + +// ================================================================================================= +// This file is part of the CLBlast project. The project is licensed under Apache Version 2.0. This +// project loosely follows the Google C++ styleguide and uses a tab-size of two spaces and a max- +// width of 100 characters per line. +// +// Author(s): +// Cedric Nugteren +// +// ================================================================================================= + +#include "correctness/testblas.h" +#include "routines/level2/xtbsv.h" + +// Shortcuts to the clblast namespace +using float2 = clblast::float2; +using double2 = clblast::double2; + +// Main function (not within the clblast namespace) +int main(int argc, char *argv[]) { + clblast::RunTests, float, float>(argc, argv, false, "STBSV"); + clblast::RunTests, double, double>(argc, argv, true, "DTBSV"); + clblast::RunTests, float2, float2>(argc, argv, true, "CTBSV"); + clblast::RunTests, double2, double2>(argc, argv, true, "ZTBSV"); + return 0; +} + +// ================================================================================================= diff --git a/test/correctness/routines/level2/xtpmv.cc b/test/correctness/routines/level2/xtpmv.cc new file mode 100644 index 00000000..95489a65 --- /dev/null +++ b/test/correctness/routines/level2/xtpmv.cc @@ -0,0 +1,28 @@ + +// ================================================================================================= +// This file is part of the CLBlast project. The project is licensed under Apache Version 2.0. This +// project loosely follows the Google C++ styleguide and uses a tab-size of two spaces and a max- +// width of 100 characters per line. +// +// Author(s): +// Cedric Nugteren +// +// ================================================================================================= + +#include "correctness/testblas.h" +#include "routines/level2/xtpmv.h" + +// Shortcuts to the clblast namespace +using float2 = clblast::float2; +using double2 = clblast::double2; + +// Main function (not within the clblast namespace) +int main(int argc, char *argv[]) { + clblast::RunTests, float, float>(argc, argv, false, "STPMV"); + clblast::RunTests, double, double>(argc, argv, true, "DTPMV"); + clblast::RunTests, float2, float2>(argc, argv, true, "CTPMV"); + clblast::RunTests, double2, double2>(argc, argv, true, "ZTPMV"); + return 0; +} + +// ================================================================================================= diff --git a/test/correctness/routines/level2/xtpsv.cc b/test/correctness/routines/level2/xtpsv.cc new file mode 100644 index 00000000..97d27271 --- /dev/null +++ b/test/correctness/routines/level2/xtpsv.cc @@ -0,0 +1,28 @@ + +// ================================================================================================= +// This file is part of the CLBlast project. The project is licensed under Apache Version 2.0. This +// project loosely follows the Google C++ styleguide and uses a tab-size of two spaces and a max- +// width of 100 characters per line. +// +// Author(s): +// Cedric Nugteren +// +// ================================================================================================= + +#include "correctness/testblas.h" +#include "routines/level2/xtpsv.h" + +// Shortcuts to the clblast namespace +using float2 = clblast::float2; +using double2 = clblast::double2; + +// Main function (not within the clblast namespace) +int main(int argc, char *argv[]) { + clblast::RunTests, float, float>(argc, argv, false, "STPSV"); + clblast::RunTests, double, double>(argc, argv, true, "DTPSV"); + clblast::RunTests, float2, float2>(argc, argv, true, "CTPSV"); + clblast::RunTests, double2, double2>(argc, argv, true, "ZTPSV"); + return 0; +} + +// ================================================================================================= diff --git a/test/correctness/routines/level2/xtrmv.cc b/test/correctness/routines/level2/xtrmv.cc new file mode 100644 index 00000000..ca50af88 --- /dev/null +++ b/test/correctness/routines/level2/xtrmv.cc @@ -0,0 +1,28 @@ + +// ================================================================================================= +// This file is part of the CLBlast project. The project is licensed under Apache Version 2.0. This +// project loosely follows the Google C++ styleguide and uses a tab-size of two spaces and a max- +// width of 100 characters per line. +// +// Author(s): +// Cedric Nugteren +// +// ================================================================================================= + +#include "correctness/testblas.h" +#include "routines/level2/xtrmv.h" + +// Shortcuts to the clblast namespace +using float2 = clblast::float2; +using double2 = clblast::double2; + +// Main function (not within the clblast namespace) +int main(int argc, char *argv[]) { + clblast::RunTests, float, float>(argc, argv, false, "STRMV"); + clblast::RunTests, double, double>(argc, argv, true, "DTRMV"); + clblast::RunTests, float2, float2>(argc, argv, true, "CTRMV"); + clblast::RunTests, double2, double2>(argc, argv, true, "ZTRMV"); + return 0; +} + +// ================================================================================================= diff --git a/test/correctness/routines/level2/xtrsv.cc b/test/correctness/routines/level2/xtrsv.cc new file mode 100644 index 00000000..bfca0f20 --- /dev/null +++ b/test/correctness/routines/level2/xtrsv.cc @@ -0,0 +1,28 @@ + +// ================================================================================================= +// This file is part of the CLBlast project. The project is licensed under Apache Version 2.0. This +// project loosely follows the Google C++ styleguide and uses a tab-size of two spaces and a max- +// width of 100 characters per line. +// +// Author(s): +// Cedric Nugteren +// +// ================================================================================================= + +#include "correctness/testblas.h" +#include "routines/level2/xtrsv.h" + +// Shortcuts to the clblast namespace +using float2 = clblast::float2; +using double2 = clblast::double2; + +// Main function (not within the clblast namespace) +int main(int argc, char *argv[]) { + clblast::RunTests, float, float>(argc, argv, false, "STRSV"); + clblast::RunTests, double, double>(argc, argv, true, "DTRSV"); + clblast::RunTests, float2, float2>(argc, argv, true, "CTRSV"); + clblast::RunTests, double2, double2>(argc, argv, true, "ZTRSV"); + return 0; +} + +// ================================================================================================= diff --git a/test/correctness/routines/level3/xgemm.cc b/test/correctness/routines/level3/xgemm.cc index 90302095..632724ed 100644 --- a/test/correctness/routines/level3/xgemm.cc +++ b/test/correctness/routines/level3/xgemm.cc @@ -7,15 +7,11 @@ // Author(s): // Cedric Nugteren // -// This file implements the tests for the Xgemm routine. -// // ================================================================================================= #include "correctness/testblas.h" #include "routines/level3/xgemm.h" -// ================================================================================================= - // Shortcuts to the clblast namespace using float2 = clblast::float2; using double2 = clblast::double2; diff --git a/test/correctness/routines/level3/xhemm.cc b/test/correctness/routines/level3/xhemm.cc index 60555604..74e22080 100644 --- a/test/correctness/routines/level3/xhemm.cc +++ b/test/correctness/routines/level3/xhemm.cc @@ -7,22 +7,18 @@ // Author(s): // Cedric Nugteren // -// This file implements the tests for the Xhemm routine. -// // ================================================================================================= #include "correctness/testblas.h" #include "routines/level3/xhemm.h" -// ================================================================================================= - // Shortcuts to the clblast namespace using float2 = clblast::float2; using double2 = clblast::double2; // Main function (not within the clblast namespace) int main(int argc, char *argv[]) { - clblast::RunTests, float2, float2>(argc, argv, true, "CHEMM"); + clblast::RunTests, float2, float2>(argc, argv, false, "CHEMM"); clblast::RunTests, double2, double2>(argc, argv, true, "ZHEMM"); return 0; } diff --git a/test/correctness/routines/level3/xher2k.cc b/test/correctness/routines/level3/xher2k.cc index dd03fcd7..6377572a 100644 --- a/test/correctness/routines/level3/xher2k.cc +++ b/test/correctness/routines/level3/xher2k.cc @@ -7,15 +7,11 @@ // Author(s): // Cedric Nugteren // -// This file implements the tests for the Xher2k routine. -// // ================================================================================================= #include "correctness/testblas.h" #include "routines/level3/xher2k.h" -// ================================================================================================= - // Shortcuts to the clblast namespace using float2 = clblast::float2; using double2 = clblast::double2; diff --git a/test/correctness/routines/level3/xherk.cc b/test/correctness/routines/level3/xherk.cc index 32b8aa2c..32a39bfc 100644 --- a/test/correctness/routines/level3/xherk.cc +++ b/test/correctness/routines/level3/xherk.cc @@ -7,15 +7,11 @@ // Author(s): // Cedric Nugteren // -// This file implements the tests for the Xherk routine. -// // ================================================================================================= #include "correctness/testblas.h" #include "routines/level3/xherk.h" -// ================================================================================================= - // Shortcuts to the clblast namespace using float2 = clblast::float2; using double2 = clblast::double2; diff --git a/test/correctness/routines/level3/xsymm.cc b/test/correctness/routines/level3/xsymm.cc index 94968e31..046fca16 100644 --- a/test/correctness/routines/level3/xsymm.cc +++ b/test/correctness/routines/level3/xsymm.cc @@ -7,15 +7,11 @@ // Author(s): // Cedric Nugteren // -// This file implements the tests for the Xsymm routine. -// // ================================================================================================= #include "correctness/testblas.h" #include "routines/level3/xsymm.h" -// ================================================================================================= - // Shortcuts to the clblast namespace using float2 = clblast::float2; using double2 = clblast::double2; diff --git a/test/correctness/routines/level3/xsyr2k.cc b/test/correctness/routines/level3/xsyr2k.cc index 3b8e601b..db2b83d9 100644 --- a/test/correctness/routines/level3/xsyr2k.cc +++ b/test/correctness/routines/level3/xsyr2k.cc @@ -7,15 +7,11 @@ // Author(s): // Cedric Nugteren // -// This file implements the tests for the Xsyr2k routine. -// // ================================================================================================= #include "correctness/testblas.h" #include "routines/level3/xsyr2k.h" -// ================================================================================================= - // Shortcuts to the clblast namespace using float2 = clblast::float2; using double2 = clblast::double2; diff --git a/test/correctness/routines/level3/xsyrk.cc b/test/correctness/routines/level3/xsyrk.cc index f299342a..3dad3535 100644 --- a/test/correctness/routines/level3/xsyrk.cc +++ b/test/correctness/routines/level3/xsyrk.cc @@ -7,15 +7,11 @@ // Author(s): // Cedric Nugteren // -// This file implements the tests for the Xsyrk routine. -// // ================================================================================================= #include "correctness/testblas.h" #include "routines/level3/xsyrk.h" -// ================================================================================================= - // Shortcuts to the clblast namespace using float2 = clblast::float2; using double2 = clblast::double2; diff --git a/test/correctness/routines/level3/xtrmm.cc b/test/correctness/routines/level3/xtrmm.cc index 6efde5f8..2d843e3e 100644 --- a/test/correctness/routines/level3/xtrmm.cc +++ b/test/correctness/routines/level3/xtrmm.cc @@ -7,15 +7,11 @@ // Author(s): // Cedric Nugteren // -// This file implements the tests for the Xtrmm routine. -// // ================================================================================================= #include "correctness/testblas.h" #include "routines/level3/xtrmm.h" -// ================================================================================================= - // Shortcuts to the clblast namespace using float2 = clblast::float2; using double2 = clblast::double2; diff --git a/test/correctness/routines/level3/xtrsm.cc b/test/correctness/routines/level3/xtrsm.cc new file mode 100644 index 00000000..b5f5045e --- /dev/null +++ b/test/correctness/routines/level3/xtrsm.cc @@ -0,0 +1,28 @@ + +// ================================================================================================= +// This file is part of the CLBlast project. The project is licensed under Apache Version 2.0. This +// project loosely follows the Google C++ styleguide and uses a tab-size of two spaces and a max- +// width of 100 characters per line. +// +// Author(s): +// Cedric Nugteren +// +// ================================================================================================= + +#include "correctness/testblas.h" +#include "routines/level3/xtrsm.h" + +// Shortcuts to the clblast namespace +using float2 = clblast::float2; +using double2 = clblast::double2; + +// Main function (not within the clblast namespace) +int main(int argc, char *argv[]) { + clblast::RunTests, float, float>(argc, argv, false, "STRSM"); + clblast::RunTests, double, double>(argc, argv, true, "DTRSM"); + clblast::RunTests, float2, float2>(argc, argv, true, "CTRSM"); + clblast::RunTests, double2, double2>(argc, argv, true, "ZTRSM"); + return 0; +} + +// ================================================================================================= diff --git a/test/performance/routines/level1/xaxpy.cc b/test/performance/routines/level1/xaxpy.cc index fe90c697..7ab15f28 100644 --- a/test/performance/routines/level1/xaxpy.cc +++ b/test/performance/routines/level1/xaxpy.cc @@ -7,15 +7,11 @@ // Author(s): // Cedric Nugteren // -// This file implements the Xaxpy command-line interface performance tester. -// // ================================================================================================= #include "performance/client.h" #include "routines/level1/xaxpy.h" -// ================================================================================================= - // Shortcuts to the clblast namespace using float2 = clblast::float2; using double2 = clblast::double2; @@ -23,8 +19,7 @@ using double2 = clblast::double2; // Main function (not within the clblast namespace) int main(int argc, char *argv[]) { switch(clblast::GetPrecision(argc, argv)) { - case clblast::Precision::kHalf: - throw std::runtime_error("Unsupported precision mode"); + case clblast::Precision::kHalf: throw std::runtime_error("Unsupported precision mode"); case clblast::Precision::kSingle: clblast::RunClient, float, float>(argc, argv); break; case clblast::Precision::kDouble: diff --git a/test/performance/routines/level1/xcopy.cc b/test/performance/routines/level1/xcopy.cc index 70b6b348..6277e8fb 100644 --- a/test/performance/routines/level1/xcopy.cc +++ b/test/performance/routines/level1/xcopy.cc @@ -7,15 +7,11 @@ // Author(s): // Cedric Nugteren // -// This file implements the Xcopy command-line interface performance tester. -// // ================================================================================================= #include "performance/client.h" #include "routines/level1/xcopy.h" -// ================================================================================================= - // Shortcuts to the clblast namespace using float2 = clblast::float2; using double2 = clblast::double2; @@ -23,8 +19,7 @@ using double2 = clblast::double2; // Main function (not within the clblast namespace) int main(int argc, char *argv[]) { switch(clblast::GetPrecision(argc, argv)) { - case clblast::Precision::kHalf: - throw std::runtime_error("Unsupported precision mode"); + case clblast::Precision::kHalf: throw std::runtime_error("Unsupported precision mode"); case clblast::Precision::kSingle: clblast::RunClient, float, float>(argc, argv); break; case clblast::Precision::kDouble: diff --git a/test/performance/routines/level1/xdot.cc b/test/performance/routines/level1/xdot.cc index c82547da..5aa76762 100644 --- a/test/performance/routines/level1/xdot.cc +++ b/test/performance/routines/level1/xdot.cc @@ -7,15 +7,11 @@ // Author(s): // Cedric Nugteren // -// This file implements the Xdot command-line interface performance tester. -// // ================================================================================================= #include "performance/client.h" #include "routines/level1/xdot.h" -// ================================================================================================= - // Shortcuts to the clblast namespace using float2 = clblast::float2; using double2 = clblast::double2; @@ -23,16 +19,13 @@ using double2 = clblast::double2; // Main function (not within the clblast namespace) int main(int argc, char *argv[]) { switch(clblast::GetPrecision(argc, argv)) { - case clblast::Precision::kHalf: - throw std::runtime_error("Unsupported precision mode"); + case clblast::Precision::kHalf: throw std::runtime_error("Unsupported precision mode"); case clblast::Precision::kSingle: clblast::RunClient, float, float>(argc, argv); break; case clblast::Precision::kDouble: clblast::RunClient, double, double>(argc, argv); break; - case clblast::Precision::kComplexSingle: - throw std::runtime_error("Unsupported precision mode"); - case clblast::Precision::kComplexDouble: - throw std::runtime_error("Unsupported precision mode"); + case clblast::Precision::kComplexSingle: throw std::runtime_error("Unsupported precision mode"); + case clblast::Precision::kComplexDouble: throw std::runtime_error("Unsupported precision mode"); } return 0; } diff --git a/test/performance/routines/level1/xdotc.cc b/test/performance/routines/level1/xdotc.cc index 327975d8..81511085 100644 --- a/test/performance/routines/level1/xdotc.cc +++ b/test/performance/routines/level1/xdotc.cc @@ -7,15 +7,11 @@ // Author(s): // Cedric Nugteren // -// This file implements the Xdotc command-line interface performance tester. -// // ================================================================================================= #include "performance/client.h" #include "routines/level1/xdotc.h" -// ================================================================================================= - // Shortcuts to the clblast namespace using float2 = clblast::float2; using double2 = clblast::double2; @@ -23,12 +19,9 @@ using double2 = clblast::double2; // Main function (not within the clblast namespace) int main(int argc, char *argv[]) { switch(clblast::GetPrecision(argc, argv)) { - case clblast::Precision::kHalf: - throw std::runtime_error("Unsupported precision mode"); - case clblast::Precision::kSingle: - throw std::runtime_error("Unsupported precision mode"); - case clblast::Precision::kDouble: - throw std::runtime_error("Unsupported precision mode"); + case clblast::Precision::kHalf: throw std::runtime_error("Unsupported precision mode"); + case clblast::Precision::kSingle: throw std::runtime_error("Unsupported precision mode"); + case clblast::Precision::kDouble: throw std::runtime_error("Unsupported precision mode"); case clblast::Precision::kComplexSingle: clblast::RunClient, float2, float2>(argc, argv); break; case clblast::Precision::kComplexDouble: diff --git a/test/performance/routines/level1/xdotu.cc b/test/performance/routines/level1/xdotu.cc index 622ffb8e..888eede3 100644 --- a/test/performance/routines/level1/xdotu.cc +++ b/test/performance/routines/level1/xdotu.cc @@ -7,15 +7,11 @@ // Author(s): // Cedric Nugteren // -// This file implements the Xdotu command-line interface performance tester. -// // ================================================================================================= #include "performance/client.h" #include "routines/level1/xdotu.h" -// ================================================================================================= - // Shortcuts to the clblast namespace using float2 = clblast::float2; using double2 = clblast::double2; @@ -23,12 +19,9 @@ using double2 = clblast::double2; // Main function (not within the clblast namespace) int main(int argc, char *argv[]) { switch(clblast::GetPrecision(argc, argv)) { - case clblast::Precision::kHalf: - throw std::runtime_error("Unsupported precision mode"); - case clblast::Precision::kSingle: - throw std::runtime_error("Unsupported precision mode"); - case clblast::Precision::kDouble: - throw std::runtime_error("Unsupported precision mode"); + case clblast::Precision::kHalf: throw std::runtime_error("Unsupported precision mode"); + case clblast::Precision::kSingle: throw std::runtime_error("Unsupported precision mode"); + case clblast::Precision::kDouble: throw std::runtime_error("Unsupported precision mode"); case clblast::Precision::kComplexSingle: clblast::RunClient, float2, float2>(argc, argv); break; case clblast::Precision::kComplexDouble: diff --git a/test/performance/routines/level1/xscal.cc b/test/performance/routines/level1/xscal.cc index 3963ba3a..be49c066 100644 --- a/test/performance/routines/level1/xscal.cc +++ b/test/performance/routines/level1/xscal.cc @@ -7,15 +7,11 @@ // Author(s): // Cedric Nugteren // -// This file implements the Xscal command-line interface performance tester. -// // ================================================================================================= #include "performance/client.h" #include "routines/level1/xscal.h" -// ================================================================================================= - // Shortcuts to the clblast namespace using float2 = clblast::float2; using double2 = clblast::double2; @@ -23,8 +19,7 @@ using double2 = clblast::double2; // Main function (not within the clblast namespace) int main(int argc, char *argv[]) { switch(clblast::GetPrecision(argc, argv)) { - case clblast::Precision::kHalf: - throw std::runtime_error("Unsupported precision mode"); + case clblast::Precision::kHalf: throw std::runtime_error("Unsupported precision mode"); case clblast::Precision::kSingle: clblast::RunClient, float, float>(argc, argv); break; case clblast::Precision::kDouble: diff --git a/test/performance/routines/level1/xswap.cc b/test/performance/routines/level1/xswap.cc index 94f271ee..52fdc580 100644 --- a/test/performance/routines/level1/xswap.cc +++ b/test/performance/routines/level1/xswap.cc @@ -7,15 +7,11 @@ // Author(s): // Cedric Nugteren // -// This file implements the Xswap command-line interface performance tester. -// // ================================================================================================= #include "performance/client.h" #include "routines/level1/xswap.h" -// ================================================================================================= - // Shortcuts to the clblast namespace using float2 = clblast::float2; using double2 = clblast::double2; @@ -23,8 +19,7 @@ using double2 = clblast::double2; // Main function (not within the clblast namespace) int main(int argc, char *argv[]) { switch(clblast::GetPrecision(argc, argv)) { - case clblast::Precision::kHalf: - throw std::runtime_error("Unsupported precision mode"); + case clblast::Precision::kHalf: throw std::runtime_error("Unsupported precision mode"); case clblast::Precision::kSingle: clblast::RunClient, float, float>(argc, argv); break; case clblast::Precision::kDouble: diff --git a/test/performance/routines/level2/xgbmv.cc b/test/performance/routines/level2/xgbmv.cc new file mode 100644 index 00000000..629e2182 --- /dev/null +++ b/test/performance/routines/level2/xgbmv.cc @@ -0,0 +1,35 @@ + +// ================================================================================================= +// This file is part of the CLBlast project. The project is licensed under Apache Version 2.0. This +// project loosely follows the Google C++ styleguide and uses a tab-size of two spaces and a max- +// width of 100 characters per line. +// +// Author(s): +// Cedric Nugteren +// +// ================================================================================================= + +#include "performance/client.h" +#include "routines/level2/xgbmv.h" + +// Shortcuts to the clblast namespace +using float2 = clblast::float2; +using double2 = clblast::double2; + +// Main function (not within the clblast namespace) +int main(int argc, char *argv[]) { + switch(clblast::GetPrecision(argc, argv)) { + case clblast::Precision::kHalf: throw std::runtime_error("Unsupported precision mode"); + case clblast::Precision::kSingle: + clblast::RunClient, float, float>(argc, argv); break; + case clblast::Precision::kDouble: + clblast::RunClient, double, double>(argc, argv); break; + case clblast::Precision::kComplexSingle: + clblast::RunClient, float2, float2>(argc, argv); break; + case clblast::Precision::kComplexDouble: + clblast::RunClient, double2, double2>(argc, argv); break; + } + return 0; +} + +// ================================================================================================= diff --git a/test/performance/routines/level2/xgemv.cc b/test/performance/routines/level2/xgemv.cc index 376c6c33..2a1983de 100644 --- a/test/performance/routines/level2/xgemv.cc +++ b/test/performance/routines/level2/xgemv.cc @@ -7,15 +7,11 @@ // Author(s): // Cedric Nugteren // -// This file implements the Xgemv command-line interface performance tester. -// // ================================================================================================= #include "performance/client.h" #include "routines/level2/xgemv.h" -// ================================================================================================= - // Shortcuts to the clblast namespace using float2 = clblast::float2; using double2 = clblast::double2; @@ -23,8 +19,7 @@ using double2 = clblast::double2; // Main function (not within the clblast namespace) int main(int argc, char *argv[]) { switch(clblast::GetPrecision(argc, argv)) { - case clblast::Precision::kHalf: - throw std::runtime_error("Unsupported precision mode"); + case clblast::Precision::kHalf: throw std::runtime_error("Unsupported precision mode"); case clblast::Precision::kSingle: clblast::RunClient, float, float>(argc, argv); break; case clblast::Precision::kDouble: diff --git a/test/performance/routines/level2/xger.cc b/test/performance/routines/level2/xger.cc new file mode 100644 index 00000000..5fb0d91d --- /dev/null +++ b/test/performance/routines/level2/xger.cc @@ -0,0 +1,33 @@ + +// ================================================================================================= +// This file is part of the CLBlast project. The project is licensed under Apache Version 2.0. This +// project loosely follows the Google C++ styleguide and uses a tab-size of two spaces and a max- +// width of 100 characters per line. +// +// Author(s): +// Cedric Nugteren +// +// ================================================================================================= + +#include "performance/client.h" +#include "routines/level2/xger.h" + +// Shortcuts to the clblast namespace +using float2 = clblast::float2; +using double2 = clblast::double2; + +// Main function (not within the clblast namespace) +int main(int argc, char *argv[]) { + switch(clblast::GetPrecision(argc, argv)) { + case clblast::Precision::kHalf: throw std::runtime_error("Unsupported precision mode"); + case clblast::Precision::kSingle: + clblast::RunClient, float, float>(argc, argv); break; + case clblast::Precision::kDouble: + clblast::RunClient, double, double>(argc, argv); break; + case clblast::Precision::kComplexSingle: throw std::runtime_error("Unsupported precision mode"); + case clblast::Precision::kComplexDouble: throw std::runtime_error("Unsupported precision mode"); + } + return 0; +} + +// ================================================================================================= diff --git a/test/performance/routines/level2/xgerc.cc b/test/performance/routines/level2/xgerc.cc new file mode 100644 index 00000000..fd511e42 --- /dev/null +++ b/test/performance/routines/level2/xgerc.cc @@ -0,0 +1,33 @@ + +// ================================================================================================= +// This file is part of the CLBlast project. The project is licensed under Apache Version 2.0. This +// project loosely follows the Google C++ styleguide and uses a tab-size of two spaces and a max- +// width of 100 characters per line. +// +// Author(s): +// Cedric Nugteren +// +// ================================================================================================= + +#include "performance/client.h" +#include "routines/level2/xgerc.h" + +// Shortcuts to the clblast namespace +using float2 = clblast::float2; +using double2 = clblast::double2; + +// Main function (not within the clblast namespace) +int main(int argc, char *argv[]) { + switch(clblast::GetPrecision(argc, argv)) { + case clblast::Precision::kHalf: throw std::runtime_error("Unsupported precision mode"); + case clblast::Precision::kSingle: throw std::runtime_error("Unsupported precision mode"); + case clblast::Precision::kDouble: throw std::runtime_error("Unsupported precision mode"); + case clblast::Precision::kComplexSingle: + clblast::RunClient, float2, float2>(argc, argv); break; + case clblast::Precision::kComplexDouble: + clblast::RunClient, double2, double2>(argc, argv); break; + } + return 0; +} + +// ================================================================================================= diff --git a/test/performance/routines/level2/xgeru.cc b/test/performance/routines/level2/xgeru.cc new file mode 100644 index 00000000..689ab2b1 --- /dev/null +++ b/test/performance/routines/level2/xgeru.cc @@ -0,0 +1,33 @@ + +// ================================================================================================= +// This file is part of the CLBlast project. The project is licensed under Apache Version 2.0. This +// project loosely follows the Google C++ styleguide and uses a tab-size of two spaces and a max- +// width of 100 characters per line. +// +// Author(s): +// Cedric Nugteren +// +// ================================================================================================= + +#include "performance/client.h" +#include "routines/level2/xgeru.h" + +// Shortcuts to the clblast namespace +using float2 = clblast::float2; +using double2 = clblast::double2; + +// Main function (not within the clblast namespace) +int main(int argc, char *argv[]) { + switch(clblast::GetPrecision(argc, argv)) { + case clblast::Precision::kHalf: throw std::runtime_error("Unsupported precision mode"); + case clblast::Precision::kSingle: throw std::runtime_error("Unsupported precision mode"); + case clblast::Precision::kDouble: throw std::runtime_error("Unsupported precision mode"); + case clblast::Precision::kComplexSingle: + clblast::RunClient, float2, float2>(argc, argv); break; + case clblast::Precision::kComplexDouble: + clblast::RunClient, double2, double2>(argc, argv); break; + } + return 0; +} + +// ================================================================================================= diff --git a/test/performance/routines/level2/xhbmv.cc b/test/performance/routines/level2/xhbmv.cc new file mode 100644 index 00000000..dabe6ec8 --- /dev/null +++ b/test/performance/routines/level2/xhbmv.cc @@ -0,0 +1,33 @@ + +// ================================================================================================= +// This file is part of the CLBlast project. The project is licensed under Apache Version 2.0. This +// project loosely follows the Google C++ styleguide and uses a tab-size of two spaces and a max- +// width of 100 characters per line. +// +// Author(s): +// Cedric Nugteren +// +// ================================================================================================= + +#include "performance/client.h" +#include "routines/level2/xhbmv.h" + +// Shortcuts to the clblast namespace +using float2 = clblast::float2; +using double2 = clblast::double2; + +// Main function (not within the clblast namespace) +int main(int argc, char *argv[]) { + switch(clblast::GetPrecision(argc, argv)) { + case clblast::Precision::kHalf: throw std::runtime_error("Unsupported precision mode"); + case clblast::Precision::kSingle: throw std::runtime_error("Unsupported precision mode"); + case clblast::Precision::kDouble: throw std::runtime_error("Unsupported precision mode"); + case clblast::Precision::kComplexSingle: + clblast::RunClient, float2, float2>(argc, argv); break; + case clblast::Precision::kComplexDouble: + clblast::RunClient, double2, double2>(argc, argv); break; + } + return 0; +} + +// ================================================================================================= diff --git a/test/performance/routines/level2/xhemv.cc b/test/performance/routines/level2/xhemv.cc index dd70528e..77447d76 100644 --- a/test/performance/routines/level2/xhemv.cc +++ b/test/performance/routines/level2/xhemv.cc @@ -7,15 +7,11 @@ // Author(s): // Cedric Nugteren // -// This file implements the Xhemv command-line interface performance tester. -// // ================================================================================================= #include "performance/client.h" #include "routines/level2/xhemv.h" -// ================================================================================================= - // Shortcuts to the clblast namespace using float2 = clblast::float2; using double2 = clblast::double2; @@ -23,12 +19,9 @@ using double2 = clblast::double2; // Main function (not within the clblast namespace) int main(int argc, char *argv[]) { switch(clblast::GetPrecision(argc, argv)) { - case clblast::Precision::kHalf: - throw std::runtime_error("Unsupported precision mode"); - case clblast::Precision::kSingle: - throw std::runtime_error("Unsupported precision mode"); - case clblast::Precision::kDouble: - throw std::runtime_error("Unsupported precision mode"); + case clblast::Precision::kHalf: throw std::runtime_error("Unsupported precision mode"); + case clblast::Precision::kSingle: throw std::runtime_error("Unsupported precision mode"); + case clblast::Precision::kDouble: throw std::runtime_error("Unsupported precision mode"); case clblast::Precision::kComplexSingle: clblast::RunClient, float2, float2>(argc, argv); break; case clblast::Precision::kComplexDouble: diff --git a/test/performance/routines/level2/xher.cc b/test/performance/routines/level2/xher.cc new file mode 100644 index 00000000..4ef87e45 --- /dev/null +++ b/test/performance/routines/level2/xher.cc @@ -0,0 +1,33 @@ + +// ================================================================================================= +// This file is part of the CLBlast project. The project is licensed under Apache Version 2.0. This +// project loosely follows the Google C++ styleguide and uses a tab-size of two spaces and a max- +// width of 100 characters per line. +// +// Author(s): +// Cedric Nugteren +// +// ================================================================================================= + +#include "performance/client.h" +#include "routines/level2/xher.h" + +// Shortcuts to the clblast namespace +using float2 = clblast::float2; +using double2 = clblast::double2; + +// Main function (not within the clblast namespace) +int main(int argc, char *argv[]) { + switch(clblast::GetPrecision(argc, argv)) { + case clblast::Precision::kHalf: throw std::runtime_error("Unsupported precision mode"); + case clblast::Precision::kSingle: throw std::runtime_error("Unsupported precision mode"); + case clblast::Precision::kDouble: throw std::runtime_error("Unsupported precision mode"); + case clblast::Precision::kComplexSingle: + clblast::RunClient, float2, float>(argc, argv); break; + case clblast::Precision::kComplexDouble: + clblast::RunClient, double2, double>(argc, argv); break; + } + return 0; +} + +// ================================================================================================= diff --git a/test/performance/routines/level2/xher2.cc b/test/performance/routines/level2/xher2.cc new file mode 100644 index 00000000..2d7e17ab --- /dev/null +++ b/test/performance/routines/level2/xher2.cc @@ -0,0 +1,33 @@ + +// ================================================================================================= +// This file is part of the CLBlast project. The project is licensed under Apache Version 2.0. This +// project loosely follows the Google C++ styleguide and uses a tab-size of two spaces and a max- +// width of 100 characters per line. +// +// Author(s): +// Cedric Nugteren +// +// ================================================================================================= + +#include "performance/client.h" +#include "routines/level2/xher2.h" + +// Shortcuts to the clblast namespace +using float2 = clblast::float2; +using double2 = clblast::double2; + +// Main function (not within the clblast namespace) +int main(int argc, char *argv[]) { + switch(clblast::GetPrecision(argc, argv)) { + case clblast::Precision::kHalf: throw std::runtime_error("Unsupported precision mode"); + case clblast::Precision::kSingle: throw std::runtime_error("Unsupported precision mode"); + case clblast::Precision::kDouble: throw std::runtime_error("Unsupported precision mode"); + case clblast::Precision::kComplexSingle: + clblast::RunClient, float2, float2>(argc, argv); break; + case clblast::Precision::kComplexDouble: + clblast::RunClient, double2, double2>(argc, argv); break; + } + return 0; +} + +// ================================================================================================= diff --git a/test/performance/routines/level2/xhpmv.cc b/test/performance/routines/level2/xhpmv.cc new file mode 100644 index 00000000..b9dd3f82 --- /dev/null +++ b/test/performance/routines/level2/xhpmv.cc @@ -0,0 +1,33 @@ + +// ================================================================================================= +// This file is part of the CLBlast project. The project is licensed under Apache Version 2.0. This +// project loosely follows the Google C++ styleguide and uses a tab-size of two spaces and a max- +// width of 100 characters per line. +// +// Author(s): +// Cedric Nugteren +// +// ================================================================================================= + +#include "performance/client.h" +#include "routines/level2/xhpmv.h" + +// Shortcuts to the clblast namespace +using float2 = clblast::float2; +using double2 = clblast::double2; + +// Main function (not within the clblast namespace) +int main(int argc, char *argv[]) { + switch(clblast::GetPrecision(argc, argv)) { + case clblast::Precision::kHalf: throw std::runtime_error("Unsupported precision mode"); + case clblast::Precision::kSingle: throw std::runtime_error("Unsupported precision mode"); + case clblast::Precision::kDouble: throw std::runtime_error("Unsupported precision mode"); + case clblast::Precision::kComplexSingle: + clblast::RunClient, float2, float2>(argc, argv); break; + case clblast::Precision::kComplexDouble: + clblast::RunClient, double2, double2>(argc, argv); break; + } + return 0; +} + +// ================================================================================================= diff --git a/test/performance/routines/level2/xhpr.cc b/test/performance/routines/level2/xhpr.cc new file mode 100644 index 00000000..f596682c --- /dev/null +++ b/test/performance/routines/level2/xhpr.cc @@ -0,0 +1,33 @@ + +// ================================================================================================= +// This file is part of the CLBlast project. The project is licensed under Apache Version 2.0. This +// project loosely follows the Google C++ styleguide and uses a tab-size of two spaces and a max- +// width of 100 characters per line. +// +// Author(s): +// Cedric Nugteren +// +// ================================================================================================= + +#include "performance/client.h" +#include "routines/level2/xhpr.h" + +// Shortcuts to the clblast namespace +using float2 = clblast::float2; +using double2 = clblast::double2; + +// Main function (not within the clblast namespace) +int main(int argc, char *argv[]) { + switch(clblast::GetPrecision(argc, argv)) { + case clblast::Precision::kHalf: throw std::runtime_error("Unsupported precision mode"); + case clblast::Precision::kSingle: throw std::runtime_error("Unsupported precision mode"); + case clblast::Precision::kDouble: throw std::runtime_error("Unsupported precision mode"); + case clblast::Precision::kComplexSingle: + clblast::RunClient, float2, float>(argc, argv); break; + case clblast::Precision::kComplexDouble: + clblast::RunClient, double2, double>(argc, argv); break; + } + return 0; +} + +// ================================================================================================= diff --git a/test/performance/routines/level2/xhpr2.cc b/test/performance/routines/level2/xhpr2.cc new file mode 100644 index 00000000..1c493226 --- /dev/null +++ b/test/performance/routines/level2/xhpr2.cc @@ -0,0 +1,33 @@ + +// ================================================================================================= +// This file is part of the CLBlast project. The project is licensed under Apache Version 2.0. This +// project loosely follows the Google C++ styleguide and uses a tab-size of two spaces and a max- +// width of 100 characters per line. +// +// Author(s): +// Cedric Nugteren +// +// ================================================================================================= + +#include "performance/client.h" +#include "routines/level2/xhpr2.h" + +// Shortcuts to the clblast namespace +using float2 = clblast::float2; +using double2 = clblast::double2; + +// Main function (not within the clblast namespace) +int main(int argc, char *argv[]) { + switch(clblast::GetPrecision(argc, argv)) { + case clblast::Precision::kHalf: throw std::runtime_error("Unsupported precision mode"); + case clblast::Precision::kSingle: throw std::runtime_error("Unsupported precision mode"); + case clblast::Precision::kDouble: throw std::runtime_error("Unsupported precision mode"); + case clblast::Precision::kComplexSingle: + clblast::RunClient, float2, float2>(argc, argv); break; + case clblast::Precision::kComplexDouble: + clblast::RunClient, double2, double2>(argc, argv); break; + } + return 0; +} + +// ================================================================================================= diff --git a/test/performance/routines/level2/xsbmv.cc b/test/performance/routines/level2/xsbmv.cc new file mode 100644 index 00000000..febc6bfd --- /dev/null +++ b/test/performance/routines/level2/xsbmv.cc @@ -0,0 +1,33 @@ + +// ================================================================================================= +// This file is part of the CLBlast project. The project is licensed under Apache Version 2.0. This +// project loosely follows the Google C++ styleguide and uses a tab-size of two spaces and a max- +// width of 100 characters per line. +// +// Author(s): +// Cedric Nugteren +// +// ================================================================================================= + +#include "performance/client.h" +#include "routines/level2/xsbmv.h" + +// Shortcuts to the clblast namespace +using float2 = clblast::float2; +using double2 = clblast::double2; + +// Main function (not within the clblast namespace) +int main(int argc, char *argv[]) { + switch(clblast::GetPrecision(argc, argv)) { + case clblast::Precision::kHalf: throw std::runtime_error("Unsupported precision mode"); + case clblast::Precision::kSingle: + clblast::RunClient, float, float>(argc, argv); break; + case clblast::Precision::kDouble: + clblast::RunClient, double, double>(argc, argv); break; + case clblast::Precision::kComplexSingle: throw std::runtime_error("Unsupported precision mode"); + case clblast::Precision::kComplexDouble: throw std::runtime_error("Unsupported precision mode"); + } + return 0; +} + +// ================================================================================================= diff --git a/test/performance/routines/level2/xspmv.cc b/test/performance/routines/level2/xspmv.cc new file mode 100644 index 00000000..97c6b032 --- /dev/null +++ b/test/performance/routines/level2/xspmv.cc @@ -0,0 +1,33 @@ + +// ================================================================================================= +// This file is part of the CLBlast project. The project is licensed under Apache Version 2.0. This +// project loosely follows the Google C++ styleguide and uses a tab-size of two spaces and a max- +// width of 100 characters per line. +// +// Author(s): +// Cedric Nugteren +// +// ================================================================================================= + +#include "performance/client.h" +#include "routines/level2/xspmv.h" + +// Shortcuts to the clblast namespace +using float2 = clblast::float2; +using double2 = clblast::double2; + +// Main function (not within the clblast namespace) +int main(int argc, char *argv[]) { + switch(clblast::GetPrecision(argc, argv)) { + case clblast::Precision::kHalf: throw std::runtime_error("Unsupported precision mode"); + case clblast::Precision::kSingle: + clblast::RunClient, float, float>(argc, argv); break; + case clblast::Precision::kDouble: + clblast::RunClient, double, double>(argc, argv); break; + case clblast::Precision::kComplexSingle: throw std::runtime_error("Unsupported precision mode"); + case clblast::Precision::kComplexDouble: throw std::runtime_error("Unsupported precision mode"); + } + return 0; +} + +// ================================================================================================= diff --git a/test/performance/routines/level2/xspr.cc b/test/performance/routines/level2/xspr.cc new file mode 100644 index 00000000..cc18d9b6 --- /dev/null +++ b/test/performance/routines/level2/xspr.cc @@ -0,0 +1,33 @@ + +// ================================================================================================= +// This file is part of the CLBlast project. The project is licensed under Apache Version 2.0. This +// project loosely follows the Google C++ styleguide and uses a tab-size of two spaces and a max- +// width of 100 characters per line. +// +// Author(s): +// Cedric Nugteren +// +// ================================================================================================= + +#include "performance/client.h" +#include "routines/level2/xspr.h" + +// Shortcuts to the clblast namespace +using float2 = clblast::float2; +using double2 = clblast::double2; + +// Main function (not within the clblast namespace) +int main(int argc, char *argv[]) { + switch(clblast::GetPrecision(argc, argv)) { + case clblast::Precision::kHalf: throw std::runtime_error("Unsupported precision mode"); + case clblast::Precision::kSingle: + clblast::RunClient, float, float>(argc, argv); break; + case clblast::Precision::kDouble: + clblast::RunClient, double, double>(argc, argv); break; + case clblast::Precision::kComplexSingle: throw std::runtime_error("Unsupported precision mode"); + case clblast::Precision::kComplexDouble: throw std::runtime_error("Unsupported precision mode"); + } + return 0; +} + +// ================================================================================================= diff --git a/test/performance/routines/level2/xspr2.cc b/test/performance/routines/level2/xspr2.cc new file mode 100644 index 00000000..768452be --- /dev/null +++ b/test/performance/routines/level2/xspr2.cc @@ -0,0 +1,33 @@ + +// ================================================================================================= +// This file is part of the CLBlast project. The project is licensed under Apache Version 2.0. This +// project loosely follows the Google C++ styleguide and uses a tab-size of two spaces and a max- +// width of 100 characters per line. +// +// Author(s): +// Cedric Nugteren +// +// ================================================================================================= + +#include "performance/client.h" +#include "routines/level2/xspr2.h" + +// Shortcuts to the clblast namespace +using float2 = clblast::float2; +using double2 = clblast::double2; + +// Main function (not within the clblast namespace) +int main(int argc, char *argv[]) { + switch(clblast::GetPrecision(argc, argv)) { + case clblast::Precision::kHalf: throw std::runtime_error("Unsupported precision mode"); + case clblast::Precision::kSingle: + clblast::RunClient, float, float>(argc, argv); break; + case clblast::Precision::kDouble: + clblast::RunClient, double, double>(argc, argv); break; + case clblast::Precision::kComplexSingle: throw std::runtime_error("Unsupported precision mode"); + case clblast::Precision::kComplexDouble: throw std::runtime_error("Unsupported precision mode"); + } + return 0; +} + +// ================================================================================================= diff --git a/test/performance/routines/level2/xsymv.cc b/test/performance/routines/level2/xsymv.cc index 30e953a5..6748026f 100644 --- a/test/performance/routines/level2/xsymv.cc +++ b/test/performance/routines/level2/xsymv.cc @@ -7,28 +7,25 @@ // Author(s): // Cedric Nugteren // -// This file implements the Xsymv command-line interface performance tester. -// // ================================================================================================= #include "performance/client.h" #include "routines/level2/xsymv.h" -// ================================================================================================= +// Shortcuts to the clblast namespace +using float2 = clblast::float2; +using double2 = clblast::double2; // Main function (not within the clblast namespace) int main(int argc, char *argv[]) { switch(clblast::GetPrecision(argc, argv)) { - case clblast::Precision::kHalf: - throw std::runtime_error("Unsupported precision mode"); + case clblast::Precision::kHalf: throw std::runtime_error("Unsupported precision mode"); case clblast::Precision::kSingle: clblast::RunClient, float, float>(argc, argv); break; case clblast::Precision::kDouble: clblast::RunClient, double, double>(argc, argv); break; - case clblast::Precision::kComplexSingle: - throw std::runtime_error("Unsupported precision mode"); - case clblast::Precision::kComplexDouble: - throw std::runtime_error("Unsupported precision mode"); + case clblast::Precision::kComplexSingle: throw std::runtime_error("Unsupported precision mode"); + case clblast::Precision::kComplexDouble: throw std::runtime_error("Unsupported precision mode"); } return 0; } diff --git a/test/performance/routines/level2/xsyr.cc b/test/performance/routines/level2/xsyr.cc new file mode 100644 index 00000000..84510e5d --- /dev/null +++ b/test/performance/routines/level2/xsyr.cc @@ -0,0 +1,33 @@ + +// ================================================================================================= +// This file is part of the CLBlast project. The project is licensed under Apache Version 2.0. This +// project loosely follows the Google C++ styleguide and uses a tab-size of two spaces and a max- +// width of 100 characters per line. +// +// Author(s): +// Cedric Nugteren +// +// ================================================================================================= + +#include "performance/client.h" +#include "routines/level2/xsyr.h" + +// Shortcuts to the clblast namespace +using float2 = clblast::float2; +using double2 = clblast::double2; + +// Main function (not within the clblast namespace) +int main(int argc, char *argv[]) { + switch(clblast::GetPrecision(argc, argv)) { + case clblast::Precision::kHalf: throw std::runtime_error("Unsupported precision mode"); + case clblast::Precision::kSingle: + clblast::RunClient, float, float>(argc, argv); break; + case clblast::Precision::kDouble: + clblast::RunClient, double, double>(argc, argv); break; + case clblast::Precision::kComplexSingle: throw std::runtime_error("Unsupported precision mode"); + case clblast::Precision::kComplexDouble: throw std::runtime_error("Unsupported precision mode"); + } + return 0; +} + +// ================================================================================================= diff --git a/test/performance/routines/level2/xsyr2.cc b/test/performance/routines/level2/xsyr2.cc new file mode 100644 index 00000000..b8c177d8 --- /dev/null +++ b/test/performance/routines/level2/xsyr2.cc @@ -0,0 +1,33 @@ + +// ================================================================================================= +// This file is part of the CLBlast project. The project is licensed under Apache Version 2.0. This +// project loosely follows the Google C++ styleguide and uses a tab-size of two spaces and a max- +// width of 100 characters per line. +// +// Author(s): +// Cedric Nugteren +// +// ================================================================================================= + +#include "performance/client.h" +#include "routines/level2/xsyr2.h" + +// Shortcuts to the clblast namespace +using float2 = clblast::float2; +using double2 = clblast::double2; + +// Main function (not within the clblast namespace) +int main(int argc, char *argv[]) { + switch(clblast::GetPrecision(argc, argv)) { + case clblast::Precision::kHalf: throw std::runtime_error("Unsupported precision mode"); + case clblast::Precision::kSingle: + clblast::RunClient, float, float>(argc, argv); break; + case clblast::Precision::kDouble: + clblast::RunClient, double, double>(argc, argv); break; + case clblast::Precision::kComplexSingle: throw std::runtime_error("Unsupported precision mode"); + case clblast::Precision::kComplexDouble: throw std::runtime_error("Unsupported precision mode"); + } + return 0; +} + +// ================================================================================================= diff --git a/test/performance/routines/level2/xtbmv.cc b/test/performance/routines/level2/xtbmv.cc new file mode 100644 index 00000000..1663dca0 --- /dev/null +++ b/test/performance/routines/level2/xtbmv.cc @@ -0,0 +1,35 @@ + +// ================================================================================================= +// This file is part of the CLBlast project. The project is licensed under Apache Version 2.0. This +// project loosely follows the Google C++ styleguide and uses a tab-size of two spaces and a max- +// width of 100 characters per line. +// +// Author(s): +// Cedric Nugteren +// +// ================================================================================================= + +#include "performance/client.h" +#include "routines/level2/xtbmv.h" + +// Shortcuts to the clblast namespace +using float2 = clblast::float2; +using double2 = clblast::double2; + +// Main function (not within the clblast namespace) +int main(int argc, char *argv[]) { + switch(clblast::GetPrecision(argc, argv)) { + case clblast::Precision::kHalf: throw std::runtime_error("Unsupported precision mode"); + case clblast::Precision::kSingle: + clblast::RunClient, float, float>(argc, argv); break; + case clblast::Precision::kDouble: + clblast::RunClient, double, double>(argc, argv); break; + case clblast::Precision::kComplexSingle: + clblast::RunClient, float2, float2>(argc, argv); break; + case clblast::Precision::kComplexDouble: + clblast::RunClient, double2, double2>(argc, argv); break; + } + return 0; +} + +// ================================================================================================= diff --git a/test/performance/routines/level2/xtbsv.cc b/test/performance/routines/level2/xtbsv.cc new file mode 100644 index 00000000..e0cb9f2e --- /dev/null +++ b/test/performance/routines/level2/xtbsv.cc @@ -0,0 +1,35 @@ + +// ================================================================================================= +// This file is part of the CLBlast project. The project is licensed under Apache Version 2.0. This +// project loosely follows the Google C++ styleguide and uses a tab-size of two spaces and a max- +// width of 100 characters per line. +// +// Author(s): +// Cedric Nugteren +// +// ================================================================================================= + +#include "performance/client.h" +#include "routines/level2/xtbsv.h" + +// Shortcuts to the clblast namespace +using float2 = clblast::float2; +using double2 = clblast::double2; + +// Main function (not within the clblast namespace) +int main(int argc, char *argv[]) { + switch(clblast::GetPrecision(argc, argv)) { + case clblast::Precision::kHalf: throw std::runtime_error("Unsupported precision mode"); + case clblast::Precision::kSingle: + clblast::RunClient, float, float>(argc, argv); break; + case clblast::Precision::kDouble: + clblast::RunClient, double, double>(argc, argv); break; + case clblast::Precision::kComplexSingle: + clblast::RunClient, float2, float2>(argc, argv); break; + case clblast::Precision::kComplexDouble: + clblast::RunClient, double2, double2>(argc, argv); break; + } + return 0; +} + +// ================================================================================================= diff --git a/test/performance/routines/level2/xtpmv.cc b/test/performance/routines/level2/xtpmv.cc new file mode 100644 index 00000000..407fdc8c --- /dev/null +++ b/test/performance/routines/level2/xtpmv.cc @@ -0,0 +1,35 @@ + +// ================================================================================================= +// This file is part of the CLBlast project. The project is licensed under Apache Version 2.0. This +// project loosely follows the Google C++ styleguide and uses a tab-size of two spaces and a max- +// width of 100 characters per line. +// +// Author(s): +// Cedric Nugteren +// +// ================================================================================================= + +#include "performance/client.h" +#include "routines/level2/xtpmv.h" + +// Shortcuts to the clblast namespace +using float2 = clblast::float2; +using double2 = clblast::double2; + +// Main function (not within the clblast namespace) +int main(int argc, char *argv[]) { + switch(clblast::GetPrecision(argc, argv)) { + case clblast::Precision::kHalf: throw std::runtime_error("Unsupported precision mode"); + case clblast::Precision::kSingle: + clblast::RunClient, float, float>(argc, argv); break; + case clblast::Precision::kDouble: + clblast::RunClient, double, double>(argc, argv); break; + case clblast::Precision::kComplexSingle: + clblast::RunClient, float2, float2>(argc, argv); break; + case clblast::Precision::kComplexDouble: + clblast::RunClient, double2, double2>(argc, argv); break; + } + return 0; +} + +// ================================================================================================= diff --git a/test/performance/routines/level2/xtpsv.cc b/test/performance/routines/level2/xtpsv.cc new file mode 100644 index 00000000..e402dc60 --- /dev/null +++ b/test/performance/routines/level2/xtpsv.cc @@ -0,0 +1,35 @@ + +// ================================================================================================= +// This file is part of the CLBlast project. The project is licensed under Apache Version 2.0. This +// project loosely follows the Google C++ styleguide and uses a tab-size of two spaces and a max- +// width of 100 characters per line. +// +// Author(s): +// Cedric Nugteren +// +// ================================================================================================= + +#include "performance/client.h" +#include "routines/level2/xtpsv.h" + +// Shortcuts to the clblast namespace +using float2 = clblast::float2; +using double2 = clblast::double2; + +// Main function (not within the clblast namespace) +int main(int argc, char *argv[]) { + switch(clblast::GetPrecision(argc, argv)) { + case clblast::Precision::kHalf: throw std::runtime_error("Unsupported precision mode"); + case clblast::Precision::kSingle: + clblast::RunClient, float, float>(argc, argv); break; + case clblast::Precision::kDouble: + clblast::RunClient, double, double>(argc, argv); break; + case clblast::Precision::kComplexSingle: + clblast::RunClient, float2, float2>(argc, argv); break; + case clblast::Precision::kComplexDouble: + clblast::RunClient, double2, double2>(argc, argv); break; + } + return 0; +} + +// ================================================================================================= diff --git a/test/performance/routines/level2/xtrmv.cc b/test/performance/routines/level2/xtrmv.cc new file mode 100644 index 00000000..c5563240 --- /dev/null +++ b/test/performance/routines/level2/xtrmv.cc @@ -0,0 +1,35 @@ + +// ================================================================================================= +// This file is part of the CLBlast project. The project is licensed under Apache Version 2.0. This +// project loosely follows the Google C++ styleguide and uses a tab-size of two spaces and a max- +// width of 100 characters per line. +// +// Author(s): +// Cedric Nugteren +// +// ================================================================================================= + +#include "performance/client.h" +#include "routines/level2/xtrmv.h" + +// Shortcuts to the clblast namespace +using float2 = clblast::float2; +using double2 = clblast::double2; + +// Main function (not within the clblast namespace) +int main(int argc, char *argv[]) { + switch(clblast::GetPrecision(argc, argv)) { + case clblast::Precision::kHalf: throw std::runtime_error("Unsupported precision mode"); + case clblast::Precision::kSingle: + clblast::RunClient, float, float>(argc, argv); break; + case clblast::Precision::kDouble: + clblast::RunClient, double, double>(argc, argv); break; + case clblast::Precision::kComplexSingle: + clblast::RunClient, float2, float2>(argc, argv); break; + case clblast::Precision::kComplexDouble: + clblast::RunClient, double2, double2>(argc, argv); break; + } + return 0; +} + +// ================================================================================================= diff --git a/test/performance/routines/level2/xtrsv.cc b/test/performance/routines/level2/xtrsv.cc new file mode 100644 index 00000000..136e2108 --- /dev/null +++ b/test/performance/routines/level2/xtrsv.cc @@ -0,0 +1,35 @@ + +// ================================================================================================= +// This file is part of the CLBlast project. The project is licensed under Apache Version 2.0. This +// project loosely follows the Google C++ styleguide and uses a tab-size of two spaces and a max- +// width of 100 characters per line. +// +// Author(s): +// Cedric Nugteren +// +// ================================================================================================= + +#include "performance/client.h" +#include "routines/level2/xtrsv.h" + +// Shortcuts to the clblast namespace +using float2 = clblast::float2; +using double2 = clblast::double2; + +// Main function (not within the clblast namespace) +int main(int argc, char *argv[]) { + switch(clblast::GetPrecision(argc, argv)) { + case clblast::Precision::kHalf: throw std::runtime_error("Unsupported precision mode"); + case clblast::Precision::kSingle: + clblast::RunClient, float, float>(argc, argv); break; + case clblast::Precision::kDouble: + clblast::RunClient, double, double>(argc, argv); break; + case clblast::Precision::kComplexSingle: + clblast::RunClient, float2, float2>(argc, argv); break; + case clblast::Precision::kComplexDouble: + clblast::RunClient, double2, double2>(argc, argv); break; + } + return 0; +} + +// ================================================================================================= diff --git a/test/performance/routines/level3/xgemm.cc b/test/performance/routines/level3/xgemm.cc index c45c238f..2082ceac 100644 --- a/test/performance/routines/level3/xgemm.cc +++ b/test/performance/routines/level3/xgemm.cc @@ -7,15 +7,11 @@ // Author(s): // Cedric Nugteren // -// This file implements the Xgemm command-line interface performance tester. -// // ================================================================================================= #include "performance/client.h" #include "routines/level3/xgemm.h" -// ================================================================================================= - // Shortcuts to the clblast namespace using float2 = clblast::float2; using double2 = clblast::double2; @@ -23,8 +19,7 @@ using double2 = clblast::double2; // Main function (not within the clblast namespace) int main(int argc, char *argv[]) { switch(clblast::GetPrecision(argc, argv)) { - case clblast::Precision::kHalf: - throw std::runtime_error("Unsupported precision mode"); + case clblast::Precision::kHalf: throw std::runtime_error("Unsupported precision mode"); case clblast::Precision::kSingle: clblast::RunClient, float, float>(argc, argv); break; case clblast::Precision::kDouble: diff --git a/test/performance/routines/level3/xhemm.cc b/test/performance/routines/level3/xhemm.cc index d215653b..cc68e937 100644 --- a/test/performance/routines/level3/xhemm.cc +++ b/test/performance/routines/level3/xhemm.cc @@ -7,15 +7,11 @@ // Author(s): // Cedric Nugteren // -// This file implements the Xhemm command-line interface performance tester. -// // ================================================================================================= #include "performance/client.h" #include "routines/level3/xhemm.h" -// ================================================================================================= - // Shortcuts to the clblast namespace using float2 = clblast::float2; using double2 = clblast::double2; @@ -23,12 +19,9 @@ using double2 = clblast::double2; // Main function (not within the clblast namespace) int main(int argc, char *argv[]) { switch(clblast::GetPrecision(argc, argv)) { - case clblast::Precision::kHalf: - throw std::runtime_error("Unsupported precision mode"); - case clblast::Precision::kSingle: - throw std::runtime_error("Unsupported precision mode"); - case clblast::Precision::kDouble: - throw std::runtime_error("Unsupported precision mode"); + case clblast::Precision::kHalf: throw std::runtime_error("Unsupported precision mode"); + case clblast::Precision::kSingle: throw std::runtime_error("Unsupported precision mode"); + case clblast::Precision::kDouble: throw std::runtime_error("Unsupported precision mode"); case clblast::Precision::kComplexSingle: clblast::RunClient, float2, float2>(argc, argv); break; case clblast::Precision::kComplexDouble: diff --git a/test/performance/routines/level3/xher2k.cc b/test/performance/routines/level3/xher2k.cc index 2e1f248a..70d76bed 100644 --- a/test/performance/routines/level3/xher2k.cc +++ b/test/performance/routines/level3/xher2k.cc @@ -7,15 +7,11 @@ // Author(s): // Cedric Nugteren // -// This file implements the Xher2k command-line interface performance tester. -// // ================================================================================================= #include "performance/client.h" #include "routines/level3/xher2k.h" -// ================================================================================================= - // Shortcuts to the clblast namespace using float2 = clblast::float2; using double2 = clblast::double2; @@ -23,12 +19,9 @@ using double2 = clblast::double2; // Main function (not within the clblast namespace) int main(int argc, char *argv[]) { switch(clblast::GetPrecision(argc, argv)) { - case clblast::Precision::kHalf: - throw std::runtime_error("Unsupported precision mode"); - case clblast::Precision::kSingle: - throw std::runtime_error("Unsupported precision mode"); - case clblast::Precision::kDouble: - throw std::runtime_error("Unsupported precision mode"); + case clblast::Precision::kHalf: throw std::runtime_error("Unsupported precision mode"); + case clblast::Precision::kSingle: throw std::runtime_error("Unsupported precision mode"); + case clblast::Precision::kDouble: throw std::runtime_error("Unsupported precision mode"); case clblast::Precision::kComplexSingle: clblast::RunClient, float2, float>(argc, argv); break; case clblast::Precision::kComplexDouble: diff --git a/test/performance/routines/level3/xherk.cc b/test/performance/routines/level3/xherk.cc index 4386f78c..b3b5dddf 100644 --- a/test/performance/routines/level3/xherk.cc +++ b/test/performance/routines/level3/xherk.cc @@ -7,15 +7,11 @@ // Author(s): // Cedric Nugteren // -// This file implements the Xherk command-line interface performance tester. -// // ================================================================================================= #include "performance/client.h" #include "routines/level3/xherk.h" -// ================================================================================================= - // Shortcuts to the clblast namespace using float2 = clblast::float2; using double2 = clblast::double2; @@ -23,12 +19,9 @@ using double2 = clblast::double2; // Main function (not within the clblast namespace) int main(int argc, char *argv[]) { switch(clblast::GetPrecision(argc, argv)) { - case clblast::Precision::kHalf: - throw std::runtime_error("Unsupported precision mode"); - case clblast::Precision::kSingle: - throw std::runtime_error("Unsupported precision mode"); - case clblast::Precision::kDouble: - throw std::runtime_error("Unsupported precision mode"); + case clblast::Precision::kHalf: throw std::runtime_error("Unsupported precision mode"); + case clblast::Precision::kSingle: throw std::runtime_error("Unsupported precision mode"); + case clblast::Precision::kDouble: throw std::runtime_error("Unsupported precision mode"); case clblast::Precision::kComplexSingle: clblast::RunClient, float2, float>(argc, argv); break; case clblast::Precision::kComplexDouble: diff --git a/test/performance/routines/level3/xsymm.cc b/test/performance/routines/level3/xsymm.cc index bd014cee..f2292273 100644 --- a/test/performance/routines/level3/xsymm.cc +++ b/test/performance/routines/level3/xsymm.cc @@ -7,15 +7,11 @@ // Author(s): // Cedric Nugteren // -// This file implements the Xsymm command-line interface performance tester. -// // ================================================================================================= #include "performance/client.h" #include "routines/level3/xsymm.h" -// ================================================================================================= - // Shortcuts to the clblast namespace using float2 = clblast::float2; using double2 = clblast::double2; @@ -23,8 +19,7 @@ using double2 = clblast::double2; // Main function (not within the clblast namespace) int main(int argc, char *argv[]) { switch(clblast::GetPrecision(argc, argv)) { - case clblast::Precision::kHalf: - throw std::runtime_error("Unsupported precision mode"); + case clblast::Precision::kHalf: throw std::runtime_error("Unsupported precision mode"); case clblast::Precision::kSingle: clblast::RunClient, float, float>(argc, argv); break; case clblast::Precision::kDouble: diff --git a/test/performance/routines/level3/xsyr2k.cc b/test/performance/routines/level3/xsyr2k.cc index 1261be88..0c8f8f7c 100644 --- a/test/performance/routines/level3/xsyr2k.cc +++ b/test/performance/routines/level3/xsyr2k.cc @@ -7,15 +7,11 @@ // Author(s): // Cedric Nugteren // -// This file implements the Xsyr2k command-line interface performance tester. -// // ================================================================================================= #include "performance/client.h" #include "routines/level3/xsyr2k.h" -// ================================================================================================= - // Shortcuts to the clblast namespace using float2 = clblast::float2; using double2 = clblast::double2; @@ -23,8 +19,7 @@ using double2 = clblast::double2; // Main function (not within the clblast namespace) int main(int argc, char *argv[]) { switch(clblast::GetPrecision(argc, argv)) { - case clblast::Precision::kHalf: - throw std::runtime_error("Unsupported precision mode"); + case clblast::Precision::kHalf: throw std::runtime_error("Unsupported precision mode"); case clblast::Precision::kSingle: clblast::RunClient, float, float>(argc, argv); break; case clblast::Precision::kDouble: diff --git a/test/performance/routines/level3/xsyrk.cc b/test/performance/routines/level3/xsyrk.cc index 5799130f..ccd4511a 100644 --- a/test/performance/routines/level3/xsyrk.cc +++ b/test/performance/routines/level3/xsyrk.cc @@ -7,15 +7,11 @@ // Author(s): // Cedric Nugteren // -// This file implements the Xsyrk command-line interface performance tester. -// // ================================================================================================= #include "performance/client.h" #include "routines/level3/xsyrk.h" -// ================================================================================================= - // Shortcuts to the clblast namespace using float2 = clblast::float2; using double2 = clblast::double2; @@ -23,8 +19,7 @@ using double2 = clblast::double2; // Main function (not within the clblast namespace) int main(int argc, char *argv[]) { switch(clblast::GetPrecision(argc, argv)) { - case clblast::Precision::kHalf: - throw std::runtime_error("Unsupported precision mode"); + case clblast::Precision::kHalf: throw std::runtime_error("Unsupported precision mode"); case clblast::Precision::kSingle: clblast::RunClient, float, float>(argc, argv); break; case clblast::Precision::kDouble: diff --git a/test/performance/routines/level3/xtrmm.cc b/test/performance/routines/level3/xtrmm.cc index c30866e9..8278d077 100644 --- a/test/performance/routines/level3/xtrmm.cc +++ b/test/performance/routines/level3/xtrmm.cc @@ -7,15 +7,11 @@ // Author(s): // Cedric Nugteren // -// This file implements the Xtrmm command-line interface performance tester. -// // ================================================================================================= #include "performance/client.h" #include "routines/level3/xtrmm.h" -// ================================================================================================= - // Shortcuts to the clblast namespace using float2 = clblast::float2; using double2 = clblast::double2; @@ -23,8 +19,7 @@ using double2 = clblast::double2; // Main function (not within the clblast namespace) int main(int argc, char *argv[]) { switch(clblast::GetPrecision(argc, argv)) { - case clblast::Precision::kHalf: - throw std::runtime_error("Unsupported precision mode"); + case clblast::Precision::kHalf: throw std::runtime_error("Unsupported precision mode"); case clblast::Precision::kSingle: clblast::RunClient, float, float>(argc, argv); break; case clblast::Precision::kDouble: diff --git a/test/performance/routines/level3/xtrsm.cc b/test/performance/routines/level3/xtrsm.cc new file mode 100644 index 00000000..45f71c5e --- /dev/null +++ b/test/performance/routines/level3/xtrsm.cc @@ -0,0 +1,35 @@ + +// ================================================================================================= +// This file is part of the CLBlast project. The project is licensed under Apache Version 2.0. This +// project loosely follows the Google C++ styleguide and uses a tab-size of two spaces and a max- +// width of 100 characters per line. +// +// Author(s): +// Cedric Nugteren +// +// ================================================================================================= + +#include "performance/client.h" +#include "routines/level3/xtrsm.h" + +// Shortcuts to the clblast namespace +using float2 = clblast::float2; +using double2 = clblast::double2; + +// Main function (not within the clblast namespace) +int main(int argc, char *argv[]) { + switch(clblast::GetPrecision(argc, argv)) { + case clblast::Precision::kHalf: throw std::runtime_error("Unsupported precision mode"); + case clblast::Precision::kSingle: + clblast::RunClient, float, float>(argc, argv); break; + case clblast::Precision::kDouble: + clblast::RunClient, double, double>(argc, argv); break; + case clblast::Precision::kComplexSingle: + clblast::RunClient, float2, float2>(argc, argv); break; + case clblast::Precision::kComplexDouble: + clblast::RunClient, double2, double2>(argc, argv); break; + } + return 0; +} + +// ================================================================================================= -- cgit v1.2.3