From 9686ccacb5c891f70dea7d256208514d4e881557 Mon Sep 17 00:00:00 2001 From: Mark Gates Date: Wed, 22 May 2024 08:31:48 -0400 Subject: [PATCH 1/3] help shows default for complex values --- testsweeper.cc | 27 +++++++++++++++++++++++---- testsweeper.hh | 3 +++ 2 files changed, 26 insertions(+), 4 deletions(-) diff --git a/testsweeper.cc b/testsweeper.cc index 068a7d4..a1afe89 100644 --- a/testsweeper.cc +++ b/testsweeper.cc @@ -714,13 +714,14 @@ std::complex ParamComplex::scan_complex( const char** str ) } return value; } + // ----------------------------------------------------------------------------- // virtual void ParamComplex::parse( const char *str ) { //printf("ParamComplex::parse\n"); while (true) { - std::complex val = scan_complex(&str); + std::complex val = scan_complex( &str ); TParamBase< std::complex >::push_back( val ); if (*str == '\0') { break; @@ -777,7 +778,6 @@ const char* snprintf_value( return buf; } - // ----------------------------------------------------------------------------- /// If field has been used, prints the value. /// If value is set to no_data_flag, it prints "NA". @@ -791,9 +791,28 @@ void ParamComplex::print() const printf( "%*s ", display_width_, "NA" ); } else { + snprintf_value( buf, sizeof(buf), display_width_, precision_, + values_[ index_ ] ); + printf( "%-*s ", width_, buf); + } + } +} - snprintf_value( buf, sizeof(buf), display_width_, precision_, values_[ index_ ] ); - printf( "%-*s ",width_, buf); +// ----------------------------------------------------------------------------- +// virtual +void ParamComplex::help() const +{ + if (type_ == ParamType::Value || type_ == ParamType::List) { + printf( " %-16s %s; default ", + option_.c_str(), help_.c_str() ); + if (same( no_data_flag, default_value_.real() )) { + printf( "NA\n" ); + } + else { + char buf[ 1000 ]; + snprintf_value( buf, sizeof(buf), display_width_, precision_, + default_value_ ); + printf( "%s\n", buf ); } } } diff --git a/testsweeper.hh b/testsweeper.hh index 130a13c..d815959 100644 --- a/testsweeper.hh +++ b/testsweeper.hh @@ -519,6 +519,7 @@ scalar_t make_scalar( std::complex val ) return MakeScalarTraits::make( std::real(val), std::imag(val) ); } +// ============================================================================= class ParamComplex : public TParamBase< std::complex > { public: @@ -538,6 +539,7 @@ public: { values_.clear(); parse( default_value ); + default_value_ = values_[ 0 ]; is_default_ = true; } @@ -549,6 +551,7 @@ public: std::complex scan_complex( const char** str ); virtual void parse( const char* str ); virtual void print() const; + virtual void help() const; protected: int display_width_; From b5d7687f8f1a71e4c5aa7db61ec6dd73bfd205cf Mon Sep 17 00:00:00 2001 From: Mark Gates Date: Tue, 21 May 2024 01:53:08 -0400 Subject: [PATCH 2/3] For enums, use to_string, from_string. Requires C++17. --- CMakeLists.txt | 12 ++- test/ref/101.txt | 2 +- test/test_sort.cc | 3 +- testsweeper.cc | 54 ++++++----- testsweeper.hh | 222 +++++++++++++++++++++++++++++++++++++--------- 5 files changed, 223 insertions(+), 70 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 1833aa9..013300a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -122,9 +122,15 @@ if (EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/.git") testsweeper PRIVATE TESTSWEEPER_ID="${testsweeper_id}" ) endif() -# Use and export -std=c++11; don't allow -std=gnu++11 extensions. -target_compile_features( testsweeper PUBLIC cxx_std_11 ) -set_target_properties( testsweeper PROPERTIES CXX_EXTENSIONS false ) +# Use and export -std=c++17. +# CMake inexplicably allows gnu++17 or "decay" to earlier c++; prohibit those. +target_compile_features( testsweeper PUBLIC cxx_std_17 ) +set_target_properties( + testsweeper PROPERTIES + CXX_STANDARD_REQUIRED true # prohibit < c++17 + CXX_EXTENSIONS false # prohibit gnu++17 + WINDOWS_EXPORT_ALL_SYMBOLS ON +) if (CMAKE_VERSION VERSION_GREATER_EQUAL 3.15) # Conditionally add -Wall. See CMake tutorial. diff --git a/test/ref/101.txt b/test/ref/101.txt index edd83f2..ff2e955 100644 --- a/test/ref/101.txt +++ b/test/ref/101.txt @@ -1,5 +1,5 @@ -Error: --type: invalid value 'x' +Error: --type: invalid datatype 'x' TestSweeper version NA, id NA input: ./tester --type 's,x,d' sort Usage: test [-h|--help] diff --git a/test/test_sort.cc b/test/test_sort.cc index e7b1205..efe5304 100644 --- a/test/test_sort.cc +++ b/test/test_sort.cc @@ -191,7 +191,8 @@ void test_sort( Params ¶ms, bool run ) break; default: - throw std::runtime_error( "unknown datatype" ); + throw std::runtime_error( + "unknown datatype: " + to_string( params.datatype() ) ); break; } } diff --git a/testsweeper.cc b/testsweeper.cc index a1afe89..259ab55 100644 --- a/testsweeper.cc +++ b/testsweeper.cc @@ -69,31 +69,41 @@ double no_data_flag = nan("1234"); // ----------------------------------------------------------------------------- // ANSI color codes - enabled by default #ifndef NO_COLOR -const char *ansi_esc = "\x1b["; -const char *ansi_red = "\x1b[31m"; -const char *ansi_green = "\x1b[92m"; -const char *ansi_blue = "\x1b[34m"; -const char *ansi_cyan = "\x1b[36m"; -const char *ansi_magenta = "\x1b[35m"; -const char *ansi_yellow = "\x1b[33m"; -const char *ansi_white = "\x1b[37m"; -const char *ansi_gray = "\x1b[90m"; // "bright black" -const char *ansi_bold = "\x1b[1m"; -const char *ansi_normal = "\x1b[0m"; + const char *ansi_esc = "\x1b["; + const char *ansi_red = "\x1b[31m"; + const char *ansi_green = "\x1b[92m"; + const char *ansi_blue = "\x1b[34m"; + const char *ansi_cyan = "\x1b[36m"; + const char *ansi_magenta = "\x1b[35m"; + const char *ansi_yellow = "\x1b[33m"; + const char *ansi_white = "\x1b[37m"; + const char *ansi_gray = "\x1b[90m"; // "bright black" + const char *ansi_bold = "\x1b[1m"; + const char *ansi_normal = "\x1b[0m"; #else -const char *ansi_esc = ""; -const char *ansi_red = ""; -const char *ansi_green = ""; -const char *ansi_blue = ""; -const char *ansi_cyan = ""; -const char *ansi_magenta = ""; -const char *ansi_yellow = ""; -const char *ansi_white = ""; -const char *ansi_gray = ""; -const char *ansi_bold = ""; -const char *ansi_normal = ""; + const char *ansi_esc = ""; + const char *ansi_red = ""; + const char *ansi_green = ""; + const char *ansi_blue = ""; + const char *ansi_cyan = ""; + const char *ansi_magenta = ""; + const char *ansi_yellow = ""; + const char *ansi_white = ""; + const char *ansi_gray = ""; + const char *ansi_bold = ""; + const char *ansi_normal = ""; #endif +//------------------------------------------------------------------------------ +const char* DataType_help = + "one of:" + " r16, h, or half;" + " r32, s, single, or float;" + " r64, d, or double;" + " c32, c, or complex-float;" + " c64, z, or complex-double;" + " i, int, or integer"; + // ----------------------------------------------------------------------------- // static class variables std::vector< ParamBase* > ParamBase::s_params; diff --git a/testsweeper.hh b/testsweeper.hh index d815959..081ecd5 100644 --- a/testsweeper.hh +++ b/testsweeper.hh @@ -15,6 +15,7 @@ #include #include #include +#include // Version is updated by make_release.py; DO NOT EDIT. // Version 2023.11.05 @@ -53,6 +54,10 @@ public: // ----------------------------------------------------------------------------- void throw_error( const char* format, ... ); + +// ============================================================================= +// Enums + // ----------------------------------------------------------------------------- enum class DataType { Integer = 'i', @@ -63,36 +68,34 @@ enum class DataType { DoubleComplex = 'z', }; -// ---------------------------------------- -// Accepts: s (single/float), d (double), c (complex-single), z (complex-double), -// i (int) -inline DataType char2datatype( char ch ) -{ - ch = tolower( ch ); - if (ch != 'i' && ch != 'h' && ch != 's' && ch != 'd' && ch != 'c' && ch != 'z') { - throw_error( "invalid value '%c'", ch ); - } - return DataType( ch ); -} - -// ---------------------------------------- -inline char datatype2char( DataType en ) -{ - return char( en ); -} - -// ---------------------------------------- -/// Accepts a variety of inputs: -/// { i, i32, int, integer } => int -/// { s, r32, float, single } => float -/// { d, r64, double } => double -/// { c, c32, complex, complex-float, complex-single } => complex -/// { z, c64, complex, complex-double } => complex -inline DataType str2datatype( const char* str ) +extern const char* DataType_help; + +//---------------------------------------- +/// Convert string to DataType enum. Accepts a variety of inputs: +/// +/// { i, int, integer } => Integer +/// +/// { h, r16, half } => Half +/// { s, r32, float, single } => Float +/// { d, r64, double } => Double +/// { c, c32, complex } => FloatComplex +/// { z, c64, complex } => DoubleComplex +/// +/// Single letters come from traditional BLAS names (i, s, d, c, z) +/// and a few commonly accepted new ones (h, q). +/// The r32, c32, etc. come from XBLAS proposal, +/// https://bit.ly/blas-g2-proposal +/// +/// @param[in] str +/// String value to convert. +/// +/// @param[in] dummy +/// Dummy argument used to specify the return type for overloading. +/// +inline DataType from_string( std::string const& str, DataType dummy ) { std::string str_ = str; if (str_ == "i" - || str_ == "i32" || str_ == "int" || str_ == "integer" ) return DataType::Integer; else if (str_ == "h" @@ -114,16 +117,36 @@ inline DataType str2datatype( const char* str ) || str_ == "c64" || str_ == "complex" || str_ == "complex-double") return DataType::DoubleComplex; - else { - throw_error( "invalid value '%s'", str ); - return DataType(0); + else + throw_error( "invalid datatype '%s'", str.c_str() ); + return DataType::Integer; +} + +//-------------------- +[[deprecated("Use from_string. To be removed 2025-05.")]] +inline DataType char2datatype( char ch ) +{ + ch = tolower( ch ); + if (ch != 'i' && ch != 's' && ch != 'd' && ch != 'c' && ch != 'z') { + throw_error( "invalid datatype '%c'", ch ); } + return DataType( ch ); } -// ---------------------------------------- -inline const char* datatype2str( DataType en ) +//-------------------- +[[deprecated("Use from_string. To be removed 2025-05.")]] +inline DataType str2datatype( const char* str ) { - switch (en) { + return from_string( str, DataType() ); +} + +//---------------------------------------- +/// Convert DataType enum to C-style string representation. +/// Temporary common low-level implementation for to_string and datatype2str. +/// +inline const char* to_c_string( DataType value ) +{ + switch (value) { case DataType::Integer: return "i"; case DataType::Half: return "h"; case DataType::Single: return "s"; @@ -131,9 +154,86 @@ inline const char* datatype2str( DataType en ) case DataType::SingleComplex: return "c"; case DataType::DoubleComplex: return "z"; } - return ""; + throw_error( "invalid datatype" ); + return "?"; } +//-------------------- +/// Convert DataType enum to C++ string representation. +/// +inline std::string to_string( DataType value ) +{ + return std::string( to_c_string( value ) ); +} + +//-------------------- +[[deprecated("Use to_string. To be removed 2025-05.")]] +inline const char* datatype2str( DataType value ) +{ + // Can't write datatype2str using return to_string( value ).c_str() + // since string is on stack. + return to_c_string( value ); +} + +//-------------------- +[[deprecated("Use to_string. To be removed 2025-05.")]] +inline char datatype2char( DataType value ) +{ + return to_c_string( value )[ 0 ]; +} + + +//============================================================================== +// Utilities + +//------------------------------------------------------------------------------ +/// Use SFINAE to test for existence of from_string( string, T* ) function. +template +class has_from_string +{ +private: + /// Matches from_string( string str, T* val ); return type is void. + template + static auto test( std::string str, T2 val ) + -> decltype( from_string( str, T2() ) ); + + /// Matches everything else; return type is void (something other than T). + template + static void test(...); + +public: + // True if from_string( string, type ) exists, based on void return type. + static const bool value = std::is_same< + T, + decltype( test( std::string(), T() ) ) + >::value; +}; + +//------------------------------------------------------------------------------ +/// Use SFINAE to test for existence of to_string( T ) function. +/// This relies on ADL; it doesn't check the std namespace, so it won't +/// work for basic types (int, float, etc.) -- not sure how to do that. +template +class has_to_string +{ +private: + /// Matches to_string( T val ); return type is string. + template + static auto test( T2 val ) + -> decltype( to_string( val ) ); + + /// Matches everything else; return type is int (something other than string). + template + static int test(...); + +public: + // True if from_string( string, type ) exists, based on string return type. + static const bool value = std::is_same< + std::string, + decltype( test( T() ) ) + >::value; +}; + // ----------------------------------------------------------------------------- int scan_range( const char **strp, int64_t *start, int64_t *end, int64_t *step ); int scan_range( const char **strp, double *start, double *end, double *step ); @@ -653,8 +753,19 @@ public: typedef ENUM (*str2enum)( const char* str ); typedef const char* (*enum2str)( ENUM en ); - // deprecated - // Takes char2enum, enum2char, enum2str. + /// Constructor for enums that have to_string and from_string. + ParamEnum( const char* name, int width, ParamType type, + ENUM default_value, + const char* help ): + TParamBase( name, width, type, default_value, help ), + char2enum_( nullptr ), + enum2char_( nullptr ), + str2enum_ ( nullptr ), + enum2str_ ( nullptr ) + {} + + /// Deprecated constructor taking char2enum, enum2char, enum2str. + [[deprecated("Use constructor without char2enum, etc. To be removed 2025-05.")]] ParamEnum( const char* name, int width, ParamType type, ENUM default_value, char2enum in_char2enum, enum2char in_enum2char, @@ -667,7 +778,8 @@ public: enum2str_( in_enum2str ) {} - // Takes str2enum, enum2str. + /// Deprecated constructor taking str2enum, enum2str. + [[deprecated("Use constructor without char2enum, etc. To be removed 2025-05.")]] ParamEnum( const char* name, int width, ParamType type, ENUM default_value, str2enum in_str2enum, enum2str in_enum2str, @@ -684,6 +796,7 @@ public: virtual void help() const; protected: + // Deprecated: char2enum_, etc. char2enum char2enum_; enum2char enum2char_; str2enum str2enum_; @@ -706,10 +819,14 @@ void ParamEnum::parse( const char *str ) str += len; // Parse word into enum. str2enum_ & char2enum_ throw errors. ENUM val; - if (str2enum_) { + if constexpr (has_from_string::value) { + val = from_string( buf, ENUM() ); + } + else if (str2enum_) { val = str2enum_( buf ); } else { + assert( char2enum_ != nullptr ); val = char2enum_( buf[0] ); } this->push_back( val ); @@ -729,8 +846,17 @@ template void ParamEnum::print() const { if (this->used_ && this->width_ > 0) { - printf( "%*s ", this->width_, - this->enum2str_( this->values_[ this->index_ ] )); + if constexpr (has_to_string::value) { + printf( "%*s ", this->width_, + to_string( this->values_[ this->index_ ] ).c_str() ); + } + else if (enum2str_) { + printf( "%*s ", this->width_, + this->enum2str_( this->values_[ this->index_ ] )); + } + else { + throw_error( "no to_string method available" ); + } } } @@ -740,9 +866,19 @@ template void ParamEnum::help() const { if (this->type_ == ParamType::Value || this->type_ == ParamType::List) { - printf( " %-16s %s; default %s\n", - this->option_.c_str(), this->help_.c_str(), - this->enum2str_( this->default_value_ )); + if constexpr (has_to_string::value) { + printf( " %-16s %s; default %s\n", + this->option_.c_str(), this->help_.c_str(), + to_string( this->default_value_ ).c_str() ); + } + else if (enum2str_) { + printf( " %-16s %s; default %s\n", + this->option_.c_str(), this->help_.c_str(), + this->enum2str_( this->default_value_ )); + } + else { + throw_error( "no to_string method available" ); + } } } From 95773f243e88e533a0e8910b2b594faf2d66b655 Mon Sep 17 00:00:00 2001 From: Mark Gates Date: Tue, 21 May 2024 01:53:15 -0400 Subject: [PATCH 3/3] update tester with simpler Param constructors; sync with SLATE, etc. --- test/ref/003.txt | 12 ++--- test/ref/004.txt | 12 ++--- test/ref/005.txt | 14 +++--- test/ref/006.txt | 24 ++++----- test/ref/100.txt | 24 ++++----- test/ref/101.txt | 12 ++--- test/ref/200.txt | 10 ++-- test/ref/201.txt | 10 ++-- test/ref/202.txt | 6 +-- test/ref/203.txt | 12 ++--- test/ref/204.txt | 44 ++++++---------- test/ref/205.txt | 20 ++++---- test/ref/206.txt | 6 +-- test/ref/207.txt | 20 ++++---- test/ref/208.txt | 12 ++--- test/ref/300.txt | 10 ++-- test/ref/301.txt | 10 ++-- test/ref/302.txt | 10 ++-- test/ref/303.txt | 10 ++-- test/ref/400.txt | 100 ++++++++++++++++++------------------- test/ref/401.txt | 124 +++++++++++++++++++++++----------------------- test/ref/402.txt | 44 ++++++++-------- test/ref/403.txt | 34 ++++++------- test/ref/404.txt | 28 +++++------ test/ref/500.txt | 14 +++--- test/ref/501.txt | 14 +++--- test/ref/502.txt | 14 +++--- test/ref/503.txt | 14 +++--- test/ref/600.txt | 34 ++++++------- test/ref/601.txt | 34 ++++++------- test/ref/602.txt | 8 +-- test/ref/603.txt | 22 ++++---- test/ref/604.txt | 14 +++--- test/ref/605.txt | 12 ++--- test/ref/606.txt | 26 +++++----- test/run_tests.py | 3 +- test/test.cc | 114 ++++++++++++++++++++++++++---------------- test/test.hh | 39 ++++++++------- test/test_sort.cc | 5 +- 39 files changed, 498 insertions(+), 477 deletions(-) diff --git a/test/ref/003.txt b/test/ref/003.txt index 355843e..c4f1707 100644 --- a/test/ref/003.txt +++ b/test/ref/003.txt @@ -6,15 +6,15 @@ Usage: test [-h|--help] Parameters for sort: --check check the results; default y; valid: [ny] - --ref run reference; sometimes check -> ref; default n; valid: [ny] + --ref run reference; sometimes check implies ref; default n; valid: [ny] --tol tolerance (e.g., error < tol*epsilon to pass); default 50 --repeat times to repeat each test; default 1 --verbose verbose level; default 0 --cache total cache size, in MiB; default 20 Parameters that take comma-separated list of values and may be repeated: - --type One of: s, r32, single, float; d, r64, double; c, c32, complex; z, c64, complex; i, int, integer; default d - --nb block size; default 32 - --dim m x n x k dimensions - --alpha alpha value - --beta beta value; default 2.72 + --type one of: r16, h, or half; r32, s, single, or float; r64, d, or double; c32, c, or complex-float; c64, z, or complex-double; i, int, or integer; default d + --dim m by n by k dimensions + --nb block size; default 384 + --alpha scalar alpha; default 3.1+1.4i + --beta scalar beta; default 2.7 diff --git a/test/ref/004.txt b/test/ref/004.txt index 23d62ae..81b275f 100644 --- a/test/ref/004.txt +++ b/test/ref/004.txt @@ -6,15 +6,15 @@ Usage: test [-h|--help] Parameters for sort: --check check the results; default y; valid: [ny] - --ref run reference; sometimes check -> ref; default n; valid: [ny] + --ref run reference; sometimes check implies ref; default n; valid: [ny] --tol tolerance (e.g., error < tol*epsilon to pass); default 50 --repeat times to repeat each test; default 1 --verbose verbose level; default 0 --cache total cache size, in MiB; default 20 Parameters that take comma-separated list of values and may be repeated: - --type One of: s, r32, single, float; d, r64, double; c, c32, complex; z, c64, complex; i, int, integer; default d - --nb block size; default 32 - --dim m x n x k dimensions - --alpha alpha value - --beta beta value; default 2.72 + --type one of: r16, h, or half; r32, s, single, or float; r64, d, or double; c32, c, or complex-float; c64, z, or complex-double; i, int, or integer; default d + --dim m by n by k dimensions + --nb block size; default 384 + --alpha scalar alpha; default 3.1+1.4i + --beta scalar beta; default 2.7 diff --git a/test/ref/005.txt b/test/ref/005.txt index 54838d6..186bcac 100644 --- a/test/ref/005.txt +++ b/test/ref/005.txt @@ -1,10 +1,10 @@ TestSweeper version NA, id NA input: ./tester sort - SLATE SLATE LAPACK Reference LAPACK -type nb m n k alpha beta error time (ms) gflop/s time (ms) reference gflop/s status - d 32 100 100 100 3.14+1.41i 2.72 1.2346e-15 ----------- ----------- ---------------- ----------------- pass - d 32 200 200 200 3.14+1.41i 2.72 2.4691e-15 ----------- ----------- ---------------- ----------------- pass - d 32 300 300 300 3.14+1.41i 2.72 3.7037e-15 ----------- ----------- ---------------- ----------------- pass - d 32 400 400 400 3.14+1.41i 2.72 4.9382e-15 ----------- ----------- ---------------- ----------------- pass - d 32 500 500 500 3.14+1.41i 2.72 6.1728e-15 ----------- ----------- ---------------- ----------------- pass + SLATE LAPACK Reference LAPACK +type m n k nb alpha beta error time (ms) gflop/s time (ms) reference gflop/s status + d 100 100 100 384 3.1+1.4i 2.7 1.23e-15 --------- ------------ ---------------- ----------------- pass + d 200 200 200 384 3.1+1.4i 2.7 2.47e-15 --------- ------------ ---------------- ----------------- pass + d 300 300 300 384 3.1+1.4i 2.7 3.70e-15 --------- ------------ ---------------- ----------------- pass + d 400 400 400 384 3.1+1.4i 2.7 4.94e-15 --------- ------------ ---------------- ----------------- pass + d 500 500 500 384 3.1+1.4i 2.7 6.17e-15 --------- ------------ ---------------- ----------------- pass All tests passed. diff --git a/test/ref/006.txt b/test/ref/006.txt index 055b728..cf7355f 100644 --- a/test/ref/006.txt +++ b/test/ref/006.txt @@ -1,15 +1,15 @@ TestSweeper version NA, id NA input: ./tester --dim '100:1000:100' sort - SLATE SLATE LAPACK Reference LAPACK -type nb m n k alpha beta error time (ms) gflop/s time (ms) reference gflop/s status - d 32 100 100 100 3.14+1.41i 2.72 1.2346e-15 ----------- ----------- ---------------- ----------------- pass - d 32 200 200 200 3.14+1.41i 2.72 2.4691e-15 ----------- ----------- ---------------- ----------------- pass - d 32 300 300 300 3.14+1.41i 2.72 3.7037e-15 ----------- ----------- ---------------- ----------------- pass - d 32 400 400 400 3.14+1.41i 2.72 4.9382e-15 ----------- ----------- ---------------- ----------------- pass - d 32 500 500 500 3.14+1.41i 2.72 6.1728e-15 ----------- ----------- ---------------- ----------------- pass - d 32 600 600 600 3.14+1.41i 2.72 7.4074e-15 ----------- ----------- ---------------- ----------------- pass - d 32 700 700 700 3.14+1.41i 2.72 8.6419e-15 ----------- ----------- ---------------- ----------------- pass - d 32 800 800 800 3.14+1.41i 2.72 9.8765e-15 ----------- ----------- ---------------- ----------------- pass - d 32 900 900 900 3.14+1.41i 2.72 1.1111e-14 ----------- ----------- ---------------- ----------------- FAILED - d 32 1000 1000 1000 3.14+1.41i 2.72 1.2346e-14 ----------- ----------- ---------------- ----------------- FAILED + SLATE LAPACK Reference LAPACK +type m n k nb alpha beta error time (ms) gflop/s time (ms) reference gflop/s status + d 100 100 100 384 3.1+1.4i 2.7 1.23e-15 --------- ------------ ---------------- ----------------- pass + d 200 200 200 384 3.1+1.4i 2.7 2.47e-15 --------- ------------ ---------------- ----------------- pass + d 300 300 300 384 3.1+1.4i 2.7 3.70e-15 --------- ------------ ---------------- ----------------- pass + d 400 400 400 384 3.1+1.4i 2.7 4.94e-15 --------- ------------ ---------------- ----------------- pass + d 500 500 500 384 3.1+1.4i 2.7 6.17e-15 --------- ------------ ---------------- ----------------- pass + d 600 600 600 384 3.1+1.4i 2.7 7.41e-15 --------- ------------ ---------------- ----------------- pass + d 700 700 700 384 3.1+1.4i 2.7 8.64e-15 --------- ------------ ---------------- ----------------- pass + d 800 800 800 384 3.1+1.4i 2.7 9.88e-15 --------- ------------ ---------------- ----------------- pass + d 900 900 900 384 3.1+1.4i 2.7 1.11e-14 --------- ------------ ---------------- ----------------- FAILED + d 1000 1000 1000 384 3.1+1.4i 2.7 1.23e-14 --------- ------------ ---------------- ----------------- FAILED 2 tests FAILED. diff --git a/test/ref/100.txt b/test/ref/100.txt index 86dc56a..6dd88f9 100644 --- a/test/ref/100.txt +++ b/test/ref/100.txt @@ -1,16 +1,16 @@ TestSweeper version NA, id NA input: ./tester --type 's,d' sort - SLATE SLATE LAPACK Reference LAPACK -type nb m n k alpha beta error time (ms) gflop/s time (ms) reference gflop/s status - s 32 100 100 100 3.14+1.41i 2.72 1.2346e-15 ----------- ----------- ---------------- ----------------- pass - s 32 200 200 200 3.14+1.41i 2.72 2.4691e-15 ----------- ----------- ---------------- ----------------- pass - s 32 300 300 300 3.14+1.41i 2.72 3.7037e-15 ----------- ----------- ---------------- ----------------- pass - s 32 400 400 400 3.14+1.41i 2.72 4.9382e-15 ----------- ----------- ---------------- ----------------- pass - s 32 500 500 500 3.14+1.41i 2.72 6.1728e-15 ----------- ----------- ---------------- ----------------- pass + SLATE LAPACK Reference LAPACK +type m n k nb alpha beta error time (ms) gflop/s time (ms) reference gflop/s status + s 100 100 100 384 3.1+1.4i 2.7 1.23e-15 --------- ------------ ---------------- ----------------- pass + s 200 200 200 384 3.1+1.4i 2.7 2.47e-15 --------- ------------ ---------------- ----------------- pass + s 300 300 300 384 3.1+1.4i 2.7 3.70e-15 --------- ------------ ---------------- ----------------- pass + s 400 400 400 384 3.1+1.4i 2.7 4.94e-15 --------- ------------ ---------------- ----------------- pass + s 500 500 500 384 3.1+1.4i 2.7 6.17e-15 --------- ------------ ---------------- ----------------- pass - d 32 100 100 100 3.14+1.41i 2.72 1.2346e-15 ----------- ----------- ---------------- ----------------- pass - d 32 200 200 200 3.14+1.41i 2.72 2.4691e-15 ----------- ----------- ---------------- ----------------- pass - d 32 300 300 300 3.14+1.41i 2.72 3.7037e-15 ----------- ----------- ---------------- ----------------- pass - d 32 400 400 400 3.14+1.41i 2.72 4.9382e-15 ----------- ----------- ---------------- ----------------- pass - d 32 500 500 500 3.14+1.41i 2.72 6.1728e-15 ----------- ----------- ---------------- ----------------- pass + d 100 100 100 384 3.1+1.4i 2.7 1.23e-15 --------- ------------ ---------------- ----------------- pass + d 200 200 200 384 3.1+1.4i 2.7 2.47e-15 --------- ------------ ---------------- ----------------- pass + d 300 300 300 384 3.1+1.4i 2.7 3.70e-15 --------- ------------ ---------------- ----------------- pass + d 400 400 400 384 3.1+1.4i 2.7 4.94e-15 --------- ------------ ---------------- ----------------- pass + d 500 500 500 384 3.1+1.4i 2.7 6.17e-15 --------- ------------ ---------------- ----------------- pass All tests passed. diff --git a/test/ref/101.txt b/test/ref/101.txt index ff2e955..73222f4 100644 --- a/test/ref/101.txt +++ b/test/ref/101.txt @@ -8,15 +8,15 @@ Usage: test [-h|--help] Parameters for sort: --check check the results; default y; valid: [ny] - --ref run reference; sometimes check -> ref; default n; valid: [ny] + --ref run reference; sometimes check implies ref; default n; valid: [ny] --tol tolerance (e.g., error < tol*epsilon to pass); default 50 --repeat times to repeat each test; default 1 --verbose verbose level; default 0 --cache total cache size, in MiB; default 20 Parameters that take comma-separated list of values and may be repeated: - --type One of: s, r32, single, float; d, r64, double; c, c32, complex; z, c64, complex; i, int, integer; default d - --nb block size; default 32 - --dim m x n x k dimensions - --alpha alpha value - --beta beta value; default 2.72 + --type one of: r16, h, or half; r32, s, single, or float; r64, d, or double; c32, c, or complex-float; c64, z, or complex-double; i, int, or integer; default d + --dim m by n by k dimensions + --nb block size; default 384 + --alpha scalar alpha; default 3.1+1.4i + --beta scalar beta; default 2.7 diff --git a/test/ref/200.txt b/test/ref/200.txt index b4fd521..7757a1d 100644 --- a/test/ref/200.txt +++ b/test/ref/200.txt @@ -1,8 +1,8 @@ TestSweeper version NA, id NA input: ./tester --type s --dim '100:300:100' sort2 - SLATE SLATE LAPACK Reference LAPACK -type nb m n k alpha beta error time (ms) gflop/s time (ms) reference gflop/s status - s 32 100 100 100 3.14+1.41i 2.72 1.2346e-15 ----------- ----------- ---------------- ----------------- pass - s 32 200 200 200 3.14+1.41i 2.72 2.4691e-15 ----------- ----------- ---------------- ----------------- pass - s 32 300 300 300 3.14+1.41i 2.72 3.7037e-15 ----------- ----------- ---------------- ----------------- pass + SLATE LAPACK Reference LAPACK +type m n k nb alpha beta error time (ms) gflop/s time (ms) reference gflop/s status + s 100 100 100 384 3.1+1.4i 2.7 1.23e-15 --------- ------------ ---------------- ----------------- pass + s 200 200 200 384 3.1+1.4i 2.7 2.47e-15 --------- ------------ ---------------- ----------------- pass + s 300 300 300 384 3.1+1.4i 2.7 3.70e-15 --------- ------------ ---------------- ----------------- pass All tests passed. diff --git a/test/ref/201.txt b/test/ref/201.txt index 85a8ba5..1c9b45d 100644 --- a/test/ref/201.txt +++ b/test/ref/201.txt @@ -1,8 +1,8 @@ TestSweeper version NA, id NA input: ./tester --type s --dim '300:100:-100' sort2 - SLATE SLATE LAPACK Reference LAPACK -type nb m n k alpha beta error time (ms) gflop/s time (ms) reference gflop/s status - s 32 300 300 300 3.14+1.41i 2.72 3.7037e-15 ----------- ----------- ---------------- ----------------- pass - s 32 200 200 200 3.14+1.41i 2.72 2.4691e-15 ----------- ----------- ---------------- ----------------- pass - s 32 100 100 100 3.14+1.41i 2.72 1.2346e-15 ----------- ----------- ---------------- ----------------- pass + SLATE LAPACK Reference LAPACK +type m n k nb alpha beta error time (ms) gflop/s time (ms) reference gflop/s status + s 300 300 300 384 3.1+1.4i 2.7 3.70e-15 --------- ------------ ---------------- ----------------- pass + s 200 200 200 384 3.1+1.4i 2.7 2.47e-15 --------- ------------ ---------------- ----------------- pass + s 100 100 100 384 3.1+1.4i 2.7 1.23e-15 --------- ------------ ---------------- ----------------- pass All tests passed. diff --git a/test/ref/202.txt b/test/ref/202.txt index 7496bb3..264f344 100644 --- a/test/ref/202.txt +++ b/test/ref/202.txt @@ -1,6 +1,6 @@ TestSweeper version NA, id NA input: ./tester --type s --dim 1234 sort2 - SLATE SLATE LAPACK Reference LAPACK -type nb m n k alpha beta error time (ms) gflop/s time (ms) reference gflop/s status - s 32 1234 1234 1234 3.14+1.41i 2.72 1.5234e-14 ----------- ----------- ---------------- ----------------- pass + SLATE LAPACK Reference LAPACK +type m n k nb alpha beta error time (ms) gflop/s time (ms) reference gflop/s status + s 1234 1234 1234 384 3.1+1.4i 2.7 1.52e-14 --------- ------------ ---------------- ----------------- pass All tests passed. diff --git a/test/ref/203.txt b/test/ref/203.txt index b83b141..d1a8da0 100644 --- a/test/ref/203.txt +++ b/test/ref/203.txt @@ -1,9 +1,9 @@ TestSweeper version NA, id NA input: ./tester --type s --dim 1234 --dim '100:300:100' sort2 - SLATE SLATE LAPACK Reference LAPACK -type nb m n k alpha beta error time (ms) gflop/s time (ms) reference gflop/s status - s 32 1234 1234 1234 3.14+1.41i 2.72 1.5234e-14 ----------- ----------- ---------------- ----------------- pass - s 32 100 100 100 3.14+1.41i 2.72 1.2346e-15 ----------- ----------- ---------------- ----------------- pass - s 32 200 200 200 3.14+1.41i 2.72 2.4691e-15 ----------- ----------- ---------------- ----------------- pass - s 32 300 300 300 3.14+1.41i 2.72 3.7037e-15 ----------- ----------- ---------------- ----------------- pass + SLATE LAPACK Reference LAPACK +type m n k nb alpha beta error time (ms) gflop/s time (ms) reference gflop/s status + s 1234 1234 1234 384 3.1+1.4i 2.7 1.52e-14 --------- ------------ ---------------- ----------------- pass + s 100 100 100 384 3.1+1.4i 2.7 1.23e-15 --------- ------------ ---------------- ----------------- pass + s 200 200 200 384 3.1+1.4i 2.7 2.47e-15 --------- ------------ ---------------- ----------------- pass + s 300 300 300 384 3.1+1.4i 2.7 3.70e-15 --------- ------------ ---------------- ----------------- pass All tests passed. diff --git a/test/ref/204.txt b/test/ref/204.txt index c975d7a..5d38331 100644 --- a/test/ref/204.txt +++ b/test/ref/204.txt @@ -1,29 +1,17 @@ TestSweeper version NA, id NA -input: ./tester --dim '1k:4kx1ki:4ki' --dim '1M:4Mx1Mi:4Mi' --dim '1G:4Gx1Gi:4Gi' --dim '1T:4Tx1Ti:4Ti' --dim '1P:4Px1Pi:4Pi' --dim '1E:4Ex1Ei:4Ei' sort2 - SLATE SLATE LAPACK Reference LAPACK -type nb m n k alpha beta error time (ms) gflop/s time (ms) reference gflop/s status - d 32 1000 1024 1024 3.14+1.41i 2.72 1.2642e-14 ----------- ----------- ---------------- ----------------- FAILED - d 32 2000 2048 2048 3.14+1.41i 2.72 2.5284e-14 ----------- ----------- ---------------- ----------------- FAILED - d 32 3000 3072 3072 3.14+1.41i 2.72 3.7926e-14 ----------- ----------- ---------------- ----------------- FAILED - d 32 4000 4096 4096 3.14+1.41i 2.72 5.0568e-14 ----------- ----------- ---------------- ----------------- FAILED - d 32 1000000 1048576 1048576 3.14+1.41i 2.72 1.2945e-11 ----------- ----------- ---------------- ----------------- FAILED - d 32 2000000 2097152 2097152 3.14+1.41i 2.72 2.5891e-11 ----------- ----------- ---------------- ----------------- FAILED - d 32 3000000 3145728 3145728 3.14+1.41i 2.72 3.8836e-11 ----------- ----------- ---------------- ----------------- FAILED - d 32 4000000 4194304 4194304 3.14+1.41i 2.72 5.1781e-11 ----------- ----------- ---------------- ----------------- FAILED - d 32 1000000000 1073741824 1073741824 3.14+1.41i 2.72 1.3256e-08 ----------- ----------- ---------------- ----------------- FAILED - d 32 2000000000 2147483648 2147483648 3.14+1.41i 2.72 2.6512e-08 ----------- ----------- ---------------- ----------------- FAILED - d 32 3000000000 3221225472 3221225472 3.14+1.41i 2.72 3.9768e-08 ----------- ----------- ---------------- ----------------- FAILED - d 32 4000000000 4294967296 4294967296 3.14+1.41i 2.72 5.3024e-08 ----------- ----------- ---------------- ----------------- FAILED - d 32 1000000000000 1099511627776 1099511627776 3.14+1.41i 2.72 1.3574e-05 ----------- ----------- ---------------- ----------------- FAILED - d 32 2000000000000 2199023255552 2199023255552 3.14+1.41i 2.72 2.7148e-05 ----------- ----------- ---------------- ----------------- FAILED - d 32 3000000000000 3298534883328 3298534883328 3.14+1.41i 2.72 4.0722e-05 ----------- ----------- ---------------- ----------------- FAILED - d 32 4000000000000 4398046511104 4398046511104 3.14+1.41i 2.72 5.4297e-05 ----------- ----------- ---------------- ----------------- FAILED - d 32 1000000000000000 1125899906842624 1125899906842624 3.14+1.41i 2.72 1.3900e-02 ----------- ----------- ---------------- ----------------- FAILED - d 32 2000000000000000 2251799813685248 2251799813685248 3.14+1.41i 2.72 2.7800e-02 ----------- ----------- ---------------- ----------------- FAILED - d 32 3000000000000000 3377699720527872 3377699720527872 3.14+1.41i 2.72 4.1700e-02 ----------- ----------- ---------------- ----------------- FAILED - d 32 4000000000000000 4503599627370496 4503599627370496 3.14+1.41i 2.72 5.5600e-02 ----------- ----------- ---------------- ----------------- FAILED - d 32 1000000000000000000 1152921504606846976 1152921504606846976 3.14+1.41i 2.72 1.4234e+01 ----------- ----------- ---------------- ----------------- FAILED - d 32 2000000000000000000 2305843009213693952 2305843009213693952 3.14+1.41i 2.72 2.8467e+01 ----------- ----------- ---------------- ----------------- FAILED - d 32 3000000000000000000 3458764513820540928 3458764513820540928 3.14+1.41i 2.72 4.2701e+01 ----------- ----------- ---------------- ----------------- FAILED - d 32 4000000000000000000 4611686018427387904 4611686018427387904 3.14+1.41i 2.72 5.6934e+01 ----------- ----------- ---------------- ----------------- FAILED -24 tests FAILED. +input: ./tester --dim '1k:4kx1ki:4ki' --dim '1M:4Mx1Mi:4Mi' --dim '1G:4Gx1Gi:4Gi' sort2 + SLATE LAPACK Reference LAPACK +type m n k nb alpha beta error time (ms) gflop/s time (ms) reference gflop/s status + d 1000 1024 1024 384 3.1+1.4i 2.7 1.26e-14 --------- ------------ ---------------- ----------------- FAILED + d 2000 2048 2048 384 3.1+1.4i 2.7 2.53e-14 --------- ------------ ---------------- ----------------- FAILED + d 3000 3072 3072 384 3.1+1.4i 2.7 3.79e-14 --------- ------------ ---------------- ----------------- FAILED + d 4000 4096 4096 384 3.1+1.4i 2.7 5.06e-14 --------- ------------ ---------------- ----------------- FAILED + d 1000000 1048576 1048576 384 3.1+1.4i 2.7 1.29e-11 --------- ------------ ---------------- ----------------- FAILED + d 2000000 2097152 2097152 384 3.1+1.4i 2.7 2.59e-11 --------- ------------ ---------------- ----------------- FAILED + d 3000000 3145728 3145728 384 3.1+1.4i 2.7 3.88e-11 --------- ------------ ---------------- ----------------- FAILED + d 4000000 4194304 4194304 384 3.1+1.4i 2.7 5.18e-11 --------- ------------ ---------------- ----------------- FAILED + d 1000000000 1073741824 1073741824 384 3.1+1.4i 2.7 1.33e-08 --------- ------------ ---------------- ----------------- FAILED + d 2000000000 2147483648 2147483648 384 3.1+1.4i 2.7 2.65e-08 --------- ------------ ---------------- ----------------- FAILED + d 3000000000 3221225472 3221225472 384 3.1+1.4i 2.7 3.98e-08 --------- ------------ ---------------- ----------------- FAILED + d 4000000000 4294967296 4294967296 384 3.1+1.4i 2.7 5.30e-08 --------- ------------ ---------------- ----------------- FAILED +12 tests FAILED. diff --git a/test/ref/205.txt b/test/ref/205.txt index fb15402..68fb1a5 100644 --- a/test/ref/205.txt +++ b/test/ref/205.txt @@ -1,13 +1,13 @@ TestSweeper version NA, id NA input: ./tester --dim '1e3:4e3' --dim '1e6:4e6' sort2 - SLATE SLATE LAPACK Reference LAPACK -type nb m n k alpha beta error time (ms) gflop/s time (ms) reference gflop/s status - d 32 1000 1000 1000 3.14+1.41i 2.72 1.2346e-14 ----------- ----------- ---------------- ----------------- FAILED - d 32 2000 2000 2000 3.14+1.41i 2.72 2.4691e-14 ----------- ----------- ---------------- ----------------- FAILED - d 32 3000 3000 3000 3.14+1.41i 2.72 3.7037e-14 ----------- ----------- ---------------- ----------------- FAILED - d 32 4000 4000 4000 3.14+1.41i 2.72 4.9382e-14 ----------- ----------- ---------------- ----------------- FAILED - d 32 1000000 1000000 1000000 3.14+1.41i 2.72 1.2346e-11 ----------- ----------- ---------------- ----------------- FAILED - d 32 2000000 2000000 2000000 3.14+1.41i 2.72 2.4691e-11 ----------- ----------- ---------------- ----------------- FAILED - d 32 3000000 3000000 3000000 3.14+1.41i 2.72 3.7037e-11 ----------- ----------- ---------------- ----------------- FAILED - d 32 4000000 4000000 4000000 3.14+1.41i 2.72 4.9382e-11 ----------- ----------- ---------------- ----------------- FAILED + SLATE LAPACK Reference LAPACK +type m n k nb alpha beta error time (ms) gflop/s time (ms) reference gflop/s status + d 1000 1000 1000 384 3.1+1.4i 2.7 1.23e-14 --------- ------------ ---------------- ----------------- FAILED + d 2000 2000 2000 384 3.1+1.4i 2.7 2.47e-14 --------- ------------ ---------------- ----------------- FAILED + d 3000 3000 3000 384 3.1+1.4i 2.7 3.70e-14 --------- ------------ ---------------- ----------------- FAILED + d 4000 4000 4000 384 3.1+1.4i 2.7 4.94e-14 --------- ------------ ---------------- ----------------- FAILED + d 1000000 1000000 1000000 384 3.1+1.4i 2.7 1.23e-11 --------- ------------ ---------------- ----------------- FAILED + d 2000000 2000000 2000000 384 3.1+1.4i 2.7 2.47e-11 --------- ------------ ---------------- ----------------- FAILED + d 3000000 3000000 3000000 384 3.1+1.4i 2.7 3.70e-11 --------- ------------ ---------------- ----------------- FAILED + d 4000000 4000000 4000000 384 3.1+1.4i 2.7 4.94e-11 --------- ------------ ---------------- ----------------- FAILED 8 tests FAILED. diff --git a/test/ref/206.txt b/test/ref/206.txt index 18319c4..72bff07 100644 --- a/test/ref/206.txt +++ b/test/ref/206.txt @@ -1,6 +1,6 @@ TestSweeper version NA, id NA input: ./tester --nb 32 --dim 100 sort2 - SLATE SLATE LAPACK Reference LAPACK -type nb m n k alpha beta error time (ms) gflop/s time (ms) reference gflop/s status - d 32 100 100 100 3.14+1.41i 2.72 1.2346e-15 ----------- ----------- ---------------- ----------------- pass + SLATE LAPACK Reference LAPACK +type m n k nb alpha beta error time (ms) gflop/s time (ms) reference gflop/s status + d 100 100 100 32 3.1+1.4i 2.7 1.23e-15 --------- ------------ ---------------- ----------------- pass All tests passed. diff --git a/test/ref/207.txt b/test/ref/207.txt index 74a79db..4c55fd9 100644 --- a/test/ref/207.txt +++ b/test/ref/207.txt @@ -1,13 +1,13 @@ TestSweeper version NA, id NA input: ./tester --nb '32:256:32' --dim 100 sort2 - SLATE SLATE LAPACK Reference LAPACK -type nb m n k alpha beta error time (ms) gflop/s time (ms) reference gflop/s status - d 32 100 100 100 3.14+1.41i 2.72 1.2346e-15 ----------- ----------- ---------------- ----------------- pass - d 64 100 100 100 3.14+1.41i 2.72 1.2346e-15 ----------- ----------- ---------------- ----------------- pass - d 96 100 100 100 3.14+1.41i 2.72 1.2346e-15 ----------- ----------- ---------------- ----------------- pass - d 128 100 100 100 3.14+1.41i 2.72 1.2346e-15 ----------- ----------- ---------------- ----------------- pass - d 160 100 100 100 3.14+1.41i 2.72 1.2346e-15 ----------- ----------- ---------------- ----------------- pass - d 192 100 100 100 3.14+1.41i 2.72 1.2346e-15 ----------- ----------- ---------------- ----------------- pass - d 224 100 100 100 3.14+1.41i 2.72 1.2346e-15 ----------- ----------- ---------------- ----------------- pass - d 256 100 100 100 3.14+1.41i 2.72 1.2346e-15 ----------- ----------- ---------------- ----------------- pass + SLATE LAPACK Reference LAPACK +type m n k nb alpha beta error time (ms) gflop/s time (ms) reference gflop/s status + d 100 100 100 32 3.1+1.4i 2.7 1.23e-15 --------- ------------ ---------------- ----------------- pass + d 100 100 100 64 3.1+1.4i 2.7 1.23e-15 --------- ------------ ---------------- ----------------- pass + d 100 100 100 96 3.1+1.4i 2.7 1.23e-15 --------- ------------ ---------------- ----------------- pass + d 100 100 100 128 3.1+1.4i 2.7 1.23e-15 --------- ------------ ---------------- ----------------- pass + d 100 100 100 160 3.1+1.4i 2.7 1.23e-15 --------- ------------ ---------------- ----------------- pass + d 100 100 100 192 3.1+1.4i 2.7 1.23e-15 --------- ------------ ---------------- ----------------- pass + d 100 100 100 224 3.1+1.4i 2.7 1.23e-15 --------- ------------ ---------------- ----------------- pass + d 100 100 100 256 3.1+1.4i 2.7 1.23e-15 --------- ------------ ---------------- ----------------- pass All tests passed. diff --git a/test/ref/208.txt b/test/ref/208.txt index 059f04b..e913e3d 100644 --- a/test/ref/208.txt +++ b/test/ref/208.txt @@ -8,15 +8,15 @@ Usage: test [-h|--help] Parameters for sort2: --check check the results; default y; valid: [ny] - --ref run reference; sometimes check -> ref; default n; valid: [ny] + --ref run reference; sometimes check implies ref; default n; valid: [ny] --tol tolerance (e.g., error < tol*epsilon to pass); default 50 --repeat times to repeat each test; default 1 --verbose verbose level; default 0 --cache total cache size, in MiB; default 20 Parameters that take comma-separated list of values and may be repeated: - --type One of: s, r32, single, float; d, r64, double; c, c32, complex; z, c64, complex; i, int, integer; default d - --nb block size; default 32 - --dim m x n x k dimensions - --alpha alpha value - --beta beta value; default 2.72 + --type one of: r16, h, or half; r32, s, single, or float; r64, d, or double; c32, c, or complex-float; c64, z, or complex-double; i, int, or integer; default d + --dim m by n by k dimensions + --nb block size; default 384 + --alpha scalar alpha; default 3.1+1.4i + --beta scalar beta; default 2.7 diff --git a/test/ref/300.txt b/test/ref/300.txt index d4d3b06..cc87705 100644 --- a/test/ref/300.txt +++ b/test/ref/300.txt @@ -1,8 +1,8 @@ TestSweeper version NA, id NA input: ./tester --type s --dim '100:300:100x50:200:50' sort3 - SLATE SLATE LAPACK Reference LAPACK -type nb m n k alpha beta error time (ms) gflop/s time (ms) reference gflop/s status - s 32 100 50 50 3.14+1.41i 2.72 6.1728e-16 ----------- ----------- ---------------- ----------------- pass - s 32 200 100 100 3.14+1.41i 2.72 1.2346e-15 ----------- ----------- ---------------- ----------------- pass - s 32 300 150 150 3.14+1.41i 2.72 1.8518e-15 ----------- ----------- ---------------- ----------------- pass + SLATE LAPACK Reference LAPACK +type m n k nb alpha beta error time (ms) gflop/s time (ms) reference gflop/s status + s 100 50 50 384 3.1+1.4i 2.7 6.17e-16 --------- ------------ ---------------- ----------------- pass + s 200 100 100 384 3.1+1.4i 2.7 1.23e-15 --------- ------------ ---------------- ----------------- pass + s 300 150 150 384 3.1+1.4i 2.7 1.85e-15 --------- ------------ ---------------- ----------------- pass All tests passed. diff --git a/test/ref/301.txt b/test/ref/301.txt index ee273df..5b52061 100644 --- a/test/ref/301.txt +++ b/test/ref/301.txt @@ -1,8 +1,8 @@ TestSweeper version NA, id NA input: ./tester --type s --dim '100:300:100x50:200:50x50' sort3 - SLATE SLATE LAPACK Reference LAPACK -type nb m n k alpha beta error time (ms) gflop/s time (ms) reference gflop/s status - s 32 100 50 50 3.14+1.41i 2.72 6.1728e-16 ----------- ----------- ---------------- ----------------- pass - s 32 200 100 50 3.14+1.41i 2.72 1.2346e-15 ----------- ----------- ---------------- ----------------- pass - s 32 300 150 50 3.14+1.41i 2.72 1.8518e-15 ----------- ----------- ---------------- ----------------- pass + SLATE LAPACK Reference LAPACK +type m n k nb alpha beta error time (ms) gflop/s time (ms) reference gflop/s status + s 100 50 50 384 3.1+1.4i 2.7 6.17e-16 --------- ------------ ---------------- ----------------- pass + s 200 100 50 384 3.1+1.4i 2.7 1.23e-15 --------- ------------ ---------------- ----------------- pass + s 300 150 50 384 3.1+1.4i 2.7 1.85e-15 --------- ------------ ---------------- ----------------- pass All tests passed. diff --git a/test/ref/302.txt b/test/ref/302.txt index 27e25c1..50baf97 100644 --- a/test/ref/302.txt +++ b/test/ref/302.txt @@ -1,8 +1,8 @@ TestSweeper version NA, id NA input: ./tester --type s --dim '100:300:100x100x50' sort3 - SLATE SLATE LAPACK Reference LAPACK -type nb m n k alpha beta error time (ms) gflop/s time (ms) reference gflop/s status - s 32 100 100 50 3.14+1.41i 2.72 1.2346e-15 ----------- ----------- ---------------- ----------------- pass - s 32 200 100 50 3.14+1.41i 2.72 1.2346e-15 ----------- ----------- ---------------- ----------------- pass - s 32 300 100 50 3.14+1.41i 2.72 1.2346e-15 ----------- ----------- ---------------- ----------------- pass + SLATE LAPACK Reference LAPACK +type m n k nb alpha beta error time (ms) gflop/s time (ms) reference gflop/s status + s 100 100 50 384 3.1+1.4i 2.7 1.23e-15 --------- ------------ ---------------- ----------------- pass + s 200 100 50 384 3.1+1.4i 2.7 1.23e-15 --------- ------------ ---------------- ----------------- pass + s 300 100 50 384 3.1+1.4i 2.7 1.23e-15 --------- ------------ ---------------- ----------------- pass All tests passed. diff --git a/test/ref/303.txt b/test/ref/303.txt index a531c46..144b77d 100644 --- a/test/ref/303.txt +++ b/test/ref/303.txt @@ -1,8 +1,8 @@ TestSweeper version NA, id NA input: ./tester --type s --dim '100:300:100x50:200:50x10:50:10' sort3 - SLATE SLATE LAPACK Reference LAPACK -type nb m n k alpha beta error time (ms) gflop/s time (ms) reference gflop/s status - s 32 100 50 10 3.14+1.41i 2.72 6.1728e-16 ----------- ----------- ---------------- ----------------- pass - s 32 200 100 20 3.14+1.41i 2.72 1.2346e-15 ----------- ----------- ---------------- ----------------- pass - s 32 300 150 30 3.14+1.41i 2.72 1.8518e-15 ----------- ----------- ---------------- ----------------- pass + SLATE LAPACK Reference LAPACK +type m n k nb alpha beta error time (ms) gflop/s time (ms) reference gflop/s status + s 100 50 10 384 3.1+1.4i 2.7 6.17e-16 --------- ------------ ---------------- ----------------- pass + s 200 100 20 384 3.1+1.4i 2.7 1.23e-15 --------- ------------ ---------------- ----------------- pass + s 300 150 30 384 3.1+1.4i 2.7 1.85e-15 --------- ------------ ---------------- ----------------- pass All tests passed. diff --git a/test/ref/400.txt b/test/ref/400.txt index 809b501..6535ca1 100644 --- a/test/ref/400.txt +++ b/test/ref/400.txt @@ -1,53 +1,53 @@ TestSweeper version NA, id NA input: ./tester --type s --dim '100:300:100*50:200:50' sort4 - SLATE SLATE LAPACK Reference LAPACK -type nb m n k alpha beta error time (ms) gflop/s time (ms) reference gflop/s status - s 32 100 50 50 3.14+1.41i 2.72 6.1728e-16 ----------- ----------- ---------------- ----------------- pass - s 32 100 50 100 3.14+1.41i 2.72 6.1728e-16 ----------- ----------- ---------------- ----------------- pass - s 32 100 50 150 3.14+1.41i 2.72 6.1728e-16 ----------- ----------- ---------------- ----------------- pass - s 32 100 50 200 3.14+1.41i 2.72 6.1728e-16 ----------- ----------- ---------------- ----------------- pass - s 32 100 100 50 3.14+1.41i 2.72 1.2346e-15 ----------- ----------- ---------------- ----------------- pass - s 32 100 100 100 3.14+1.41i 2.72 1.2346e-15 ----------- ----------- ---------------- ----------------- pass - s 32 100 100 150 3.14+1.41i 2.72 1.2346e-15 ----------- ----------- ---------------- ----------------- pass - s 32 100 100 200 3.14+1.41i 2.72 1.2346e-15 ----------- ----------- ---------------- ----------------- pass - s 32 100 150 50 3.14+1.41i 2.72 1.8518e-15 ----------- ----------- ---------------- ----------------- pass - s 32 100 150 100 3.14+1.41i 2.72 1.8518e-15 ----------- ----------- ---------------- ----------------- pass - s 32 100 150 150 3.14+1.41i 2.72 1.8518e-15 ----------- ----------- ---------------- ----------------- pass - s 32 100 150 200 3.14+1.41i 2.72 1.8518e-15 ----------- ----------- ---------------- ----------------- pass - s 32 100 200 50 3.14+1.41i 2.72 2.4691e-15 ----------- ----------- ---------------- ----------------- pass - s 32 100 200 100 3.14+1.41i 2.72 2.4691e-15 ----------- ----------- ---------------- ----------------- pass - s 32 100 200 150 3.14+1.41i 2.72 2.4691e-15 ----------- ----------- ---------------- ----------------- pass - s 32 100 200 200 3.14+1.41i 2.72 2.4691e-15 ----------- ----------- ---------------- ----------------- pass - s 32 200 50 50 3.14+1.41i 2.72 6.1728e-16 ----------- ----------- ---------------- ----------------- pass - s 32 200 50 100 3.14+1.41i 2.72 6.1728e-16 ----------- ----------- ---------------- ----------------- pass - s 32 200 50 150 3.14+1.41i 2.72 6.1728e-16 ----------- ----------- ---------------- ----------------- pass - s 32 200 50 200 3.14+1.41i 2.72 6.1728e-16 ----------- ----------- ---------------- ----------------- pass - s 32 200 100 50 3.14+1.41i 2.72 1.2346e-15 ----------- ----------- ---------------- ----------------- pass - s 32 200 100 100 3.14+1.41i 2.72 1.2346e-15 ----------- ----------- ---------------- ----------------- pass - s 32 200 100 150 3.14+1.41i 2.72 1.2346e-15 ----------- ----------- ---------------- ----------------- pass - s 32 200 100 200 3.14+1.41i 2.72 1.2346e-15 ----------- ----------- ---------------- ----------------- pass - s 32 200 150 50 3.14+1.41i 2.72 1.8518e-15 ----------- ----------- ---------------- ----------------- pass - s 32 200 150 100 3.14+1.41i 2.72 1.8518e-15 ----------- ----------- ---------------- ----------------- pass - s 32 200 150 150 3.14+1.41i 2.72 1.8518e-15 ----------- ----------- ---------------- ----------------- pass - s 32 200 150 200 3.14+1.41i 2.72 1.8518e-15 ----------- ----------- ---------------- ----------------- pass - s 32 200 200 50 3.14+1.41i 2.72 2.4691e-15 ----------- ----------- ---------------- ----------------- pass - s 32 200 200 100 3.14+1.41i 2.72 2.4691e-15 ----------- ----------- ---------------- ----------------- pass - s 32 200 200 150 3.14+1.41i 2.72 2.4691e-15 ----------- ----------- ---------------- ----------------- pass - s 32 200 200 200 3.14+1.41i 2.72 2.4691e-15 ----------- ----------- ---------------- ----------------- pass - s 32 300 50 50 3.14+1.41i 2.72 6.1728e-16 ----------- ----------- ---------------- ----------------- pass - s 32 300 50 100 3.14+1.41i 2.72 6.1728e-16 ----------- ----------- ---------------- ----------------- pass - s 32 300 50 150 3.14+1.41i 2.72 6.1728e-16 ----------- ----------- ---------------- ----------------- pass - s 32 300 50 200 3.14+1.41i 2.72 6.1728e-16 ----------- ----------- ---------------- ----------------- pass - s 32 300 100 50 3.14+1.41i 2.72 1.2346e-15 ----------- ----------- ---------------- ----------------- pass - s 32 300 100 100 3.14+1.41i 2.72 1.2346e-15 ----------- ----------- ---------------- ----------------- pass - s 32 300 100 150 3.14+1.41i 2.72 1.2346e-15 ----------- ----------- ---------------- ----------------- pass - s 32 300 100 200 3.14+1.41i 2.72 1.2346e-15 ----------- ----------- ---------------- ----------------- pass - s 32 300 150 50 3.14+1.41i 2.72 1.8518e-15 ----------- ----------- ---------------- ----------------- pass - s 32 300 150 100 3.14+1.41i 2.72 1.8518e-15 ----------- ----------- ---------------- ----------------- pass - s 32 300 150 150 3.14+1.41i 2.72 1.8518e-15 ----------- ----------- ---------------- ----------------- pass - s 32 300 150 200 3.14+1.41i 2.72 1.8518e-15 ----------- ----------- ---------------- ----------------- pass - s 32 300 200 50 3.14+1.41i 2.72 2.4691e-15 ----------- ----------- ---------------- ----------------- pass - s 32 300 200 100 3.14+1.41i 2.72 2.4691e-15 ----------- ----------- ---------------- ----------------- pass - s 32 300 200 150 3.14+1.41i 2.72 2.4691e-15 ----------- ----------- ---------------- ----------------- pass - s 32 300 200 200 3.14+1.41i 2.72 2.4691e-15 ----------- ----------- ---------------- ----------------- pass + SLATE LAPACK Reference LAPACK +type m n k nb alpha beta error time (ms) gflop/s time (ms) reference gflop/s status + s 100 50 50 384 3.1+1.4i 2.7 6.17e-16 --------- ------------ ---------------- ----------------- pass + s 100 50 100 384 3.1+1.4i 2.7 6.17e-16 --------- ------------ ---------------- ----------------- pass + s 100 50 150 384 3.1+1.4i 2.7 6.17e-16 --------- ------------ ---------------- ----------------- pass + s 100 50 200 384 3.1+1.4i 2.7 6.17e-16 --------- ------------ ---------------- ----------------- pass + s 100 100 50 384 3.1+1.4i 2.7 1.23e-15 --------- ------------ ---------------- ----------------- pass + s 100 100 100 384 3.1+1.4i 2.7 1.23e-15 --------- ------------ ---------------- ----------------- pass + s 100 100 150 384 3.1+1.4i 2.7 1.23e-15 --------- ------------ ---------------- ----------------- pass + s 100 100 200 384 3.1+1.4i 2.7 1.23e-15 --------- ------------ ---------------- ----------------- pass + s 100 150 50 384 3.1+1.4i 2.7 1.85e-15 --------- ------------ ---------------- ----------------- pass + s 100 150 100 384 3.1+1.4i 2.7 1.85e-15 --------- ------------ ---------------- ----------------- pass + s 100 150 150 384 3.1+1.4i 2.7 1.85e-15 --------- ------------ ---------------- ----------------- pass + s 100 150 200 384 3.1+1.4i 2.7 1.85e-15 --------- ------------ ---------------- ----------------- pass + s 100 200 50 384 3.1+1.4i 2.7 2.47e-15 --------- ------------ ---------------- ----------------- pass + s 100 200 100 384 3.1+1.4i 2.7 2.47e-15 --------- ------------ ---------------- ----------------- pass + s 100 200 150 384 3.1+1.4i 2.7 2.47e-15 --------- ------------ ---------------- ----------------- pass + s 100 200 200 384 3.1+1.4i 2.7 2.47e-15 --------- ------------ ---------------- ----------------- pass + s 200 50 50 384 3.1+1.4i 2.7 6.17e-16 --------- ------------ ---------------- ----------------- pass + s 200 50 100 384 3.1+1.4i 2.7 6.17e-16 --------- ------------ ---------------- ----------------- pass + s 200 50 150 384 3.1+1.4i 2.7 6.17e-16 --------- ------------ ---------------- ----------------- pass + s 200 50 200 384 3.1+1.4i 2.7 6.17e-16 --------- ------------ ---------------- ----------------- pass + s 200 100 50 384 3.1+1.4i 2.7 1.23e-15 --------- ------------ ---------------- ----------------- pass + s 200 100 100 384 3.1+1.4i 2.7 1.23e-15 --------- ------------ ---------------- ----------------- pass + s 200 100 150 384 3.1+1.4i 2.7 1.23e-15 --------- ------------ ---------------- ----------------- pass + s 200 100 200 384 3.1+1.4i 2.7 1.23e-15 --------- ------------ ---------------- ----------------- pass + s 200 150 50 384 3.1+1.4i 2.7 1.85e-15 --------- ------------ ---------------- ----------------- pass + s 200 150 100 384 3.1+1.4i 2.7 1.85e-15 --------- ------------ ---------------- ----------------- pass + s 200 150 150 384 3.1+1.4i 2.7 1.85e-15 --------- ------------ ---------------- ----------------- pass + s 200 150 200 384 3.1+1.4i 2.7 1.85e-15 --------- ------------ ---------------- ----------------- pass + s 200 200 50 384 3.1+1.4i 2.7 2.47e-15 --------- ------------ ---------------- ----------------- pass + s 200 200 100 384 3.1+1.4i 2.7 2.47e-15 --------- ------------ ---------------- ----------------- pass + s 200 200 150 384 3.1+1.4i 2.7 2.47e-15 --------- ------------ ---------------- ----------------- pass + s 200 200 200 384 3.1+1.4i 2.7 2.47e-15 --------- ------------ ---------------- ----------------- pass + s 300 50 50 384 3.1+1.4i 2.7 6.17e-16 --------- ------------ ---------------- ----------------- pass + s 300 50 100 384 3.1+1.4i 2.7 6.17e-16 --------- ------------ ---------------- ----------------- pass + s 300 50 150 384 3.1+1.4i 2.7 6.17e-16 --------- ------------ ---------------- ----------------- pass + s 300 50 200 384 3.1+1.4i 2.7 6.17e-16 --------- ------------ ---------------- ----------------- pass + s 300 100 50 384 3.1+1.4i 2.7 1.23e-15 --------- ------------ ---------------- ----------------- pass + s 300 100 100 384 3.1+1.4i 2.7 1.23e-15 --------- ------------ ---------------- ----------------- pass + s 300 100 150 384 3.1+1.4i 2.7 1.23e-15 --------- ------------ ---------------- ----------------- pass + s 300 100 200 384 3.1+1.4i 2.7 1.23e-15 --------- ------------ ---------------- ----------------- pass + s 300 150 50 384 3.1+1.4i 2.7 1.85e-15 --------- ------------ ---------------- ----------------- pass + s 300 150 100 384 3.1+1.4i 2.7 1.85e-15 --------- ------------ ---------------- ----------------- pass + s 300 150 150 384 3.1+1.4i 2.7 1.85e-15 --------- ------------ ---------------- ----------------- pass + s 300 150 200 384 3.1+1.4i 2.7 1.85e-15 --------- ------------ ---------------- ----------------- pass + s 300 200 50 384 3.1+1.4i 2.7 2.47e-15 --------- ------------ ---------------- ----------------- pass + s 300 200 100 384 3.1+1.4i 2.7 2.47e-15 --------- ------------ ---------------- ----------------- pass + s 300 200 150 384 3.1+1.4i 2.7 2.47e-15 --------- ------------ ---------------- ----------------- pass + s 300 200 200 384 3.1+1.4i 2.7 2.47e-15 --------- ------------ ---------------- ----------------- pass All tests passed. diff --git a/test/ref/401.txt b/test/ref/401.txt index cfa2ae1..7c89505 100644 --- a/test/ref/401.txt +++ b/test/ref/401.txt @@ -1,65 +1,65 @@ TestSweeper version NA, id NA input: ./tester --type s --dim '100:300:100*50:200:50*10:50:10' sort4 - SLATE SLATE LAPACK Reference LAPACK -type nb m n k alpha beta error time (ms) gflop/s time (ms) reference gflop/s status - s 32 100 50 10 3.14+1.41i 2.72 6.1728e-16 ----------- ----------- ---------------- ----------------- pass - s 32 100 50 20 3.14+1.41i 2.72 6.1728e-16 ----------- ----------- ---------------- ----------------- pass - s 32 100 50 30 3.14+1.41i 2.72 6.1728e-16 ----------- ----------- ---------------- ----------------- pass - s 32 100 50 40 3.14+1.41i 2.72 6.1728e-16 ----------- ----------- ---------------- ----------------- pass - s 32 100 50 50 3.14+1.41i 2.72 6.1728e-16 ----------- ----------- ---------------- ----------------- pass - s 32 100 100 10 3.14+1.41i 2.72 1.2346e-15 ----------- ----------- ---------------- ----------------- pass - s 32 100 100 20 3.14+1.41i 2.72 1.2346e-15 ----------- ----------- ---------------- ----------------- pass - s 32 100 100 30 3.14+1.41i 2.72 1.2346e-15 ----------- ----------- ---------------- ----------------- pass - s 32 100 100 40 3.14+1.41i 2.72 1.2346e-15 ----------- ----------- ---------------- ----------------- pass - s 32 100 100 50 3.14+1.41i 2.72 1.2346e-15 ----------- ----------- ---------------- ----------------- pass - s 32 100 150 10 3.14+1.41i 2.72 1.8518e-15 ----------- ----------- ---------------- ----------------- pass - s 32 100 150 20 3.14+1.41i 2.72 1.8518e-15 ----------- ----------- ---------------- ----------------- pass - s 32 100 150 30 3.14+1.41i 2.72 1.8518e-15 ----------- ----------- ---------------- ----------------- pass - s 32 100 150 40 3.14+1.41i 2.72 1.8518e-15 ----------- ----------- ---------------- ----------------- pass - s 32 100 150 50 3.14+1.41i 2.72 1.8518e-15 ----------- ----------- ---------------- ----------------- pass - s 32 100 200 10 3.14+1.41i 2.72 2.4691e-15 ----------- ----------- ---------------- ----------------- pass - s 32 100 200 20 3.14+1.41i 2.72 2.4691e-15 ----------- ----------- ---------------- ----------------- pass - s 32 100 200 30 3.14+1.41i 2.72 2.4691e-15 ----------- ----------- ---------------- ----------------- pass - s 32 100 200 40 3.14+1.41i 2.72 2.4691e-15 ----------- ----------- ---------------- ----------------- pass - s 32 100 200 50 3.14+1.41i 2.72 2.4691e-15 ----------- ----------- ---------------- ----------------- pass - s 32 200 50 10 3.14+1.41i 2.72 6.1728e-16 ----------- ----------- ---------------- ----------------- pass - s 32 200 50 20 3.14+1.41i 2.72 6.1728e-16 ----------- ----------- ---------------- ----------------- pass - s 32 200 50 30 3.14+1.41i 2.72 6.1728e-16 ----------- ----------- ---------------- ----------------- pass - s 32 200 50 40 3.14+1.41i 2.72 6.1728e-16 ----------- ----------- ---------------- ----------------- pass - s 32 200 50 50 3.14+1.41i 2.72 6.1728e-16 ----------- ----------- ---------------- ----------------- pass - s 32 200 100 10 3.14+1.41i 2.72 1.2346e-15 ----------- ----------- ---------------- ----------------- pass - s 32 200 100 20 3.14+1.41i 2.72 1.2346e-15 ----------- ----------- ---------------- ----------------- pass - s 32 200 100 30 3.14+1.41i 2.72 1.2346e-15 ----------- ----------- ---------------- ----------------- pass - s 32 200 100 40 3.14+1.41i 2.72 1.2346e-15 ----------- ----------- ---------------- ----------------- pass - s 32 200 100 50 3.14+1.41i 2.72 1.2346e-15 ----------- ----------- ---------------- ----------------- pass - s 32 200 150 10 3.14+1.41i 2.72 1.8518e-15 ----------- ----------- ---------------- ----------------- pass - s 32 200 150 20 3.14+1.41i 2.72 1.8518e-15 ----------- ----------- ---------------- ----------------- pass - s 32 200 150 30 3.14+1.41i 2.72 1.8518e-15 ----------- ----------- ---------------- ----------------- pass - s 32 200 150 40 3.14+1.41i 2.72 1.8518e-15 ----------- ----------- ---------------- ----------------- pass - s 32 200 150 50 3.14+1.41i 2.72 1.8518e-15 ----------- ----------- ---------------- ----------------- pass - s 32 200 200 10 3.14+1.41i 2.72 2.4691e-15 ----------- ----------- ---------------- ----------------- pass - s 32 200 200 20 3.14+1.41i 2.72 2.4691e-15 ----------- ----------- ---------------- ----------------- pass - s 32 200 200 30 3.14+1.41i 2.72 2.4691e-15 ----------- ----------- ---------------- ----------------- pass - s 32 200 200 40 3.14+1.41i 2.72 2.4691e-15 ----------- ----------- ---------------- ----------------- pass - s 32 200 200 50 3.14+1.41i 2.72 2.4691e-15 ----------- ----------- ---------------- ----------------- pass - s 32 300 50 10 3.14+1.41i 2.72 6.1728e-16 ----------- ----------- ---------------- ----------------- pass - s 32 300 50 20 3.14+1.41i 2.72 6.1728e-16 ----------- ----------- ---------------- ----------------- pass - s 32 300 50 30 3.14+1.41i 2.72 6.1728e-16 ----------- ----------- ---------------- ----------------- pass - s 32 300 50 40 3.14+1.41i 2.72 6.1728e-16 ----------- ----------- ---------------- ----------------- pass - s 32 300 50 50 3.14+1.41i 2.72 6.1728e-16 ----------- ----------- ---------------- ----------------- pass - s 32 300 100 10 3.14+1.41i 2.72 1.2346e-15 ----------- ----------- ---------------- ----------------- pass - s 32 300 100 20 3.14+1.41i 2.72 1.2346e-15 ----------- ----------- ---------------- ----------------- pass - s 32 300 100 30 3.14+1.41i 2.72 1.2346e-15 ----------- ----------- ---------------- ----------------- pass - s 32 300 100 40 3.14+1.41i 2.72 1.2346e-15 ----------- ----------- ---------------- ----------------- pass - s 32 300 100 50 3.14+1.41i 2.72 1.2346e-15 ----------- ----------- ---------------- ----------------- pass - s 32 300 150 10 3.14+1.41i 2.72 1.8518e-15 ----------- ----------- ---------------- ----------------- pass - s 32 300 150 20 3.14+1.41i 2.72 1.8518e-15 ----------- ----------- ---------------- ----------------- pass - s 32 300 150 30 3.14+1.41i 2.72 1.8518e-15 ----------- ----------- ---------------- ----------------- pass - s 32 300 150 40 3.14+1.41i 2.72 1.8518e-15 ----------- ----------- ---------------- ----------------- pass - s 32 300 150 50 3.14+1.41i 2.72 1.8518e-15 ----------- ----------- ---------------- ----------------- pass - s 32 300 200 10 3.14+1.41i 2.72 2.4691e-15 ----------- ----------- ---------------- ----------------- pass - s 32 300 200 20 3.14+1.41i 2.72 2.4691e-15 ----------- ----------- ---------------- ----------------- pass - s 32 300 200 30 3.14+1.41i 2.72 2.4691e-15 ----------- ----------- ---------------- ----------------- pass - s 32 300 200 40 3.14+1.41i 2.72 2.4691e-15 ----------- ----------- ---------------- ----------------- pass - s 32 300 200 50 3.14+1.41i 2.72 2.4691e-15 ----------- ----------- ---------------- ----------------- pass + SLATE LAPACK Reference LAPACK +type m n k nb alpha beta error time (ms) gflop/s time (ms) reference gflop/s status + s 100 50 10 384 3.1+1.4i 2.7 6.17e-16 --------- ------------ ---------------- ----------------- pass + s 100 50 20 384 3.1+1.4i 2.7 6.17e-16 --------- ------------ ---------------- ----------------- pass + s 100 50 30 384 3.1+1.4i 2.7 6.17e-16 --------- ------------ ---------------- ----------------- pass + s 100 50 40 384 3.1+1.4i 2.7 6.17e-16 --------- ------------ ---------------- ----------------- pass + s 100 50 50 384 3.1+1.4i 2.7 6.17e-16 --------- ------------ ---------------- ----------------- pass + s 100 100 10 384 3.1+1.4i 2.7 1.23e-15 --------- ------------ ---------------- ----------------- pass + s 100 100 20 384 3.1+1.4i 2.7 1.23e-15 --------- ------------ ---------------- ----------------- pass + s 100 100 30 384 3.1+1.4i 2.7 1.23e-15 --------- ------------ ---------------- ----------------- pass + s 100 100 40 384 3.1+1.4i 2.7 1.23e-15 --------- ------------ ---------------- ----------------- pass + s 100 100 50 384 3.1+1.4i 2.7 1.23e-15 --------- ------------ ---------------- ----------------- pass + s 100 150 10 384 3.1+1.4i 2.7 1.85e-15 --------- ------------ ---------------- ----------------- pass + s 100 150 20 384 3.1+1.4i 2.7 1.85e-15 --------- ------------ ---------------- ----------------- pass + s 100 150 30 384 3.1+1.4i 2.7 1.85e-15 --------- ------------ ---------------- ----------------- pass + s 100 150 40 384 3.1+1.4i 2.7 1.85e-15 --------- ------------ ---------------- ----------------- pass + s 100 150 50 384 3.1+1.4i 2.7 1.85e-15 --------- ------------ ---------------- ----------------- pass + s 100 200 10 384 3.1+1.4i 2.7 2.47e-15 --------- ------------ ---------------- ----------------- pass + s 100 200 20 384 3.1+1.4i 2.7 2.47e-15 --------- ------------ ---------------- ----------------- pass + s 100 200 30 384 3.1+1.4i 2.7 2.47e-15 --------- ------------ ---------------- ----------------- pass + s 100 200 40 384 3.1+1.4i 2.7 2.47e-15 --------- ------------ ---------------- ----------------- pass + s 100 200 50 384 3.1+1.4i 2.7 2.47e-15 --------- ------------ ---------------- ----------------- pass + s 200 50 10 384 3.1+1.4i 2.7 6.17e-16 --------- ------------ ---------------- ----------------- pass + s 200 50 20 384 3.1+1.4i 2.7 6.17e-16 --------- ------------ ---------------- ----------------- pass + s 200 50 30 384 3.1+1.4i 2.7 6.17e-16 --------- ------------ ---------------- ----------------- pass + s 200 50 40 384 3.1+1.4i 2.7 6.17e-16 --------- ------------ ---------------- ----------------- pass + s 200 50 50 384 3.1+1.4i 2.7 6.17e-16 --------- ------------ ---------------- ----------------- pass + s 200 100 10 384 3.1+1.4i 2.7 1.23e-15 --------- ------------ ---------------- ----------------- pass + s 200 100 20 384 3.1+1.4i 2.7 1.23e-15 --------- ------------ ---------------- ----------------- pass + s 200 100 30 384 3.1+1.4i 2.7 1.23e-15 --------- ------------ ---------------- ----------------- pass + s 200 100 40 384 3.1+1.4i 2.7 1.23e-15 --------- ------------ ---------------- ----------------- pass + s 200 100 50 384 3.1+1.4i 2.7 1.23e-15 --------- ------------ ---------------- ----------------- pass + s 200 150 10 384 3.1+1.4i 2.7 1.85e-15 --------- ------------ ---------------- ----------------- pass + s 200 150 20 384 3.1+1.4i 2.7 1.85e-15 --------- ------------ ---------------- ----------------- pass + s 200 150 30 384 3.1+1.4i 2.7 1.85e-15 --------- ------------ ---------------- ----------------- pass + s 200 150 40 384 3.1+1.4i 2.7 1.85e-15 --------- ------------ ---------------- ----------------- pass + s 200 150 50 384 3.1+1.4i 2.7 1.85e-15 --------- ------------ ---------------- ----------------- pass + s 200 200 10 384 3.1+1.4i 2.7 2.47e-15 --------- ------------ ---------------- ----------------- pass + s 200 200 20 384 3.1+1.4i 2.7 2.47e-15 --------- ------------ ---------------- ----------------- pass + s 200 200 30 384 3.1+1.4i 2.7 2.47e-15 --------- ------------ ---------------- ----------------- pass + s 200 200 40 384 3.1+1.4i 2.7 2.47e-15 --------- ------------ ---------------- ----------------- pass + s 200 200 50 384 3.1+1.4i 2.7 2.47e-15 --------- ------------ ---------------- ----------------- pass + s 300 50 10 384 3.1+1.4i 2.7 6.17e-16 --------- ------------ ---------------- ----------------- pass + s 300 50 20 384 3.1+1.4i 2.7 6.17e-16 --------- ------------ ---------------- ----------------- pass + s 300 50 30 384 3.1+1.4i 2.7 6.17e-16 --------- ------------ ---------------- ----------------- pass + s 300 50 40 384 3.1+1.4i 2.7 6.17e-16 --------- ------------ ---------------- ----------------- pass + s 300 50 50 384 3.1+1.4i 2.7 6.17e-16 --------- ------------ ---------------- ----------------- pass + s 300 100 10 384 3.1+1.4i 2.7 1.23e-15 --------- ------------ ---------------- ----------------- pass + s 300 100 20 384 3.1+1.4i 2.7 1.23e-15 --------- ------------ ---------------- ----------------- pass + s 300 100 30 384 3.1+1.4i 2.7 1.23e-15 --------- ------------ ---------------- ----------------- pass + s 300 100 40 384 3.1+1.4i 2.7 1.23e-15 --------- ------------ ---------------- ----------------- pass + s 300 100 50 384 3.1+1.4i 2.7 1.23e-15 --------- ------------ ---------------- ----------------- pass + s 300 150 10 384 3.1+1.4i 2.7 1.85e-15 --------- ------------ ---------------- ----------------- pass + s 300 150 20 384 3.1+1.4i 2.7 1.85e-15 --------- ------------ ---------------- ----------------- pass + s 300 150 30 384 3.1+1.4i 2.7 1.85e-15 --------- ------------ ---------------- ----------------- pass + s 300 150 40 384 3.1+1.4i 2.7 1.85e-15 --------- ------------ ---------------- ----------------- pass + s 300 150 50 384 3.1+1.4i 2.7 1.85e-15 --------- ------------ ---------------- ----------------- pass + s 300 200 10 384 3.1+1.4i 2.7 2.47e-15 --------- ------------ ---------------- ----------------- pass + s 300 200 20 384 3.1+1.4i 2.7 2.47e-15 --------- ------------ ---------------- ----------------- pass + s 300 200 30 384 3.1+1.4i 2.7 2.47e-15 --------- ------------ ---------------- ----------------- pass + s 300 200 40 384 3.1+1.4i 2.7 2.47e-15 --------- ------------ ---------------- ----------------- pass + s 300 200 50 384 3.1+1.4i 2.7 2.47e-15 --------- ------------ ---------------- ----------------- pass All tests passed. diff --git a/test/ref/402.txt b/test/ref/402.txt index 65640e8..ae5fdb9 100644 --- a/test/ref/402.txt +++ b/test/ref/402.txt @@ -1,25 +1,25 @@ TestSweeper version NA, id NA input: ./tester --type s --dim '100*50:200:50*10:50:10' sort4 - SLATE SLATE LAPACK Reference LAPACK -type nb m n k alpha beta error time (ms) gflop/s time (ms) reference gflop/s status - s 32 100 50 10 3.14+1.41i 2.72 6.1728e-16 ----------- ----------- ---------------- ----------------- pass - s 32 100 50 20 3.14+1.41i 2.72 6.1728e-16 ----------- ----------- ---------------- ----------------- pass - s 32 100 50 30 3.14+1.41i 2.72 6.1728e-16 ----------- ----------- ---------------- ----------------- pass - s 32 100 50 40 3.14+1.41i 2.72 6.1728e-16 ----------- ----------- ---------------- ----------------- pass - s 32 100 50 50 3.14+1.41i 2.72 6.1728e-16 ----------- ----------- ---------------- ----------------- pass - s 32 100 100 10 3.14+1.41i 2.72 1.2346e-15 ----------- ----------- ---------------- ----------------- pass - s 32 100 100 20 3.14+1.41i 2.72 1.2346e-15 ----------- ----------- ---------------- ----------------- pass - s 32 100 100 30 3.14+1.41i 2.72 1.2346e-15 ----------- ----------- ---------------- ----------------- pass - s 32 100 100 40 3.14+1.41i 2.72 1.2346e-15 ----------- ----------- ---------------- ----------------- pass - s 32 100 100 50 3.14+1.41i 2.72 1.2346e-15 ----------- ----------- ---------------- ----------------- pass - s 32 100 150 10 3.14+1.41i 2.72 1.8518e-15 ----------- ----------- ---------------- ----------------- pass - s 32 100 150 20 3.14+1.41i 2.72 1.8518e-15 ----------- ----------- ---------------- ----------------- pass - s 32 100 150 30 3.14+1.41i 2.72 1.8518e-15 ----------- ----------- ---------------- ----------------- pass - s 32 100 150 40 3.14+1.41i 2.72 1.8518e-15 ----------- ----------- ---------------- ----------------- pass - s 32 100 150 50 3.14+1.41i 2.72 1.8518e-15 ----------- ----------- ---------------- ----------------- pass - s 32 100 200 10 3.14+1.41i 2.72 2.4691e-15 ----------- ----------- ---------------- ----------------- pass - s 32 100 200 20 3.14+1.41i 2.72 2.4691e-15 ----------- ----------- ---------------- ----------------- pass - s 32 100 200 30 3.14+1.41i 2.72 2.4691e-15 ----------- ----------- ---------------- ----------------- pass - s 32 100 200 40 3.14+1.41i 2.72 2.4691e-15 ----------- ----------- ---------------- ----------------- pass - s 32 100 200 50 3.14+1.41i 2.72 2.4691e-15 ----------- ----------- ---------------- ----------------- pass + SLATE LAPACK Reference LAPACK +type m n k nb alpha beta error time (ms) gflop/s time (ms) reference gflop/s status + s 100 50 10 384 3.1+1.4i 2.7 6.17e-16 --------- ------------ ---------------- ----------------- pass + s 100 50 20 384 3.1+1.4i 2.7 6.17e-16 --------- ------------ ---------------- ----------------- pass + s 100 50 30 384 3.1+1.4i 2.7 6.17e-16 --------- ------------ ---------------- ----------------- pass + s 100 50 40 384 3.1+1.4i 2.7 6.17e-16 --------- ------------ ---------------- ----------------- pass + s 100 50 50 384 3.1+1.4i 2.7 6.17e-16 --------- ------------ ---------------- ----------------- pass + s 100 100 10 384 3.1+1.4i 2.7 1.23e-15 --------- ------------ ---------------- ----------------- pass + s 100 100 20 384 3.1+1.4i 2.7 1.23e-15 --------- ------------ ---------------- ----------------- pass + s 100 100 30 384 3.1+1.4i 2.7 1.23e-15 --------- ------------ ---------------- ----------------- pass + s 100 100 40 384 3.1+1.4i 2.7 1.23e-15 --------- ------------ ---------------- ----------------- pass + s 100 100 50 384 3.1+1.4i 2.7 1.23e-15 --------- ------------ ---------------- ----------------- pass + s 100 150 10 384 3.1+1.4i 2.7 1.85e-15 --------- ------------ ---------------- ----------------- pass + s 100 150 20 384 3.1+1.4i 2.7 1.85e-15 --------- ------------ ---------------- ----------------- pass + s 100 150 30 384 3.1+1.4i 2.7 1.85e-15 --------- ------------ ---------------- ----------------- pass + s 100 150 40 384 3.1+1.4i 2.7 1.85e-15 --------- ------------ ---------------- ----------------- pass + s 100 150 50 384 3.1+1.4i 2.7 1.85e-15 --------- ------------ ---------------- ----------------- pass + s 100 200 10 384 3.1+1.4i 2.7 2.47e-15 --------- ------------ ---------------- ----------------- pass + s 100 200 20 384 3.1+1.4i 2.7 2.47e-15 --------- ------------ ---------------- ----------------- pass + s 100 200 30 384 3.1+1.4i 2.7 2.47e-15 --------- ------------ ---------------- ----------------- pass + s 100 200 40 384 3.1+1.4i 2.7 2.47e-15 --------- ------------ ---------------- ----------------- pass + s 100 200 50 384 3.1+1.4i 2.7 2.47e-15 --------- ------------ ---------------- ----------------- pass All tests passed. diff --git a/test/ref/403.txt b/test/ref/403.txt index acc41a6..63c9881 100644 --- a/test/ref/403.txt +++ b/test/ref/403.txt @@ -1,20 +1,20 @@ TestSweeper version NA, id NA input: ./tester --type s --dim '100:300:100*50*10:50:10' sort4 - SLATE SLATE LAPACK Reference LAPACK -type nb m n k alpha beta error time (ms) gflop/s time (ms) reference gflop/s status - s 32 100 50 10 3.14+1.41i 2.72 6.1728e-16 ----------- ----------- ---------------- ----------------- pass - s 32 100 50 20 3.14+1.41i 2.72 6.1728e-16 ----------- ----------- ---------------- ----------------- pass - s 32 100 50 30 3.14+1.41i 2.72 6.1728e-16 ----------- ----------- ---------------- ----------------- pass - s 32 100 50 40 3.14+1.41i 2.72 6.1728e-16 ----------- ----------- ---------------- ----------------- pass - s 32 100 50 50 3.14+1.41i 2.72 6.1728e-16 ----------- ----------- ---------------- ----------------- pass - s 32 200 50 10 3.14+1.41i 2.72 6.1728e-16 ----------- ----------- ---------------- ----------------- pass - s 32 200 50 20 3.14+1.41i 2.72 6.1728e-16 ----------- ----------- ---------------- ----------------- pass - s 32 200 50 30 3.14+1.41i 2.72 6.1728e-16 ----------- ----------- ---------------- ----------------- pass - s 32 200 50 40 3.14+1.41i 2.72 6.1728e-16 ----------- ----------- ---------------- ----------------- pass - s 32 200 50 50 3.14+1.41i 2.72 6.1728e-16 ----------- ----------- ---------------- ----------------- pass - s 32 300 50 10 3.14+1.41i 2.72 6.1728e-16 ----------- ----------- ---------------- ----------------- pass - s 32 300 50 20 3.14+1.41i 2.72 6.1728e-16 ----------- ----------- ---------------- ----------------- pass - s 32 300 50 30 3.14+1.41i 2.72 6.1728e-16 ----------- ----------- ---------------- ----------------- pass - s 32 300 50 40 3.14+1.41i 2.72 6.1728e-16 ----------- ----------- ---------------- ----------------- pass - s 32 300 50 50 3.14+1.41i 2.72 6.1728e-16 ----------- ----------- ---------------- ----------------- pass + SLATE LAPACK Reference LAPACK +type m n k nb alpha beta error time (ms) gflop/s time (ms) reference gflop/s status + s 100 50 10 384 3.1+1.4i 2.7 6.17e-16 --------- ------------ ---------------- ----------------- pass + s 100 50 20 384 3.1+1.4i 2.7 6.17e-16 --------- ------------ ---------------- ----------------- pass + s 100 50 30 384 3.1+1.4i 2.7 6.17e-16 --------- ------------ ---------------- ----------------- pass + s 100 50 40 384 3.1+1.4i 2.7 6.17e-16 --------- ------------ ---------------- ----------------- pass + s 100 50 50 384 3.1+1.4i 2.7 6.17e-16 --------- ------------ ---------------- ----------------- pass + s 200 50 10 384 3.1+1.4i 2.7 6.17e-16 --------- ------------ ---------------- ----------------- pass + s 200 50 20 384 3.1+1.4i 2.7 6.17e-16 --------- ------------ ---------------- ----------------- pass + s 200 50 30 384 3.1+1.4i 2.7 6.17e-16 --------- ------------ ---------------- ----------------- pass + s 200 50 40 384 3.1+1.4i 2.7 6.17e-16 --------- ------------ ---------------- ----------------- pass + s 200 50 50 384 3.1+1.4i 2.7 6.17e-16 --------- ------------ ---------------- ----------------- pass + s 300 50 10 384 3.1+1.4i 2.7 6.17e-16 --------- ------------ ---------------- ----------------- pass + s 300 50 20 384 3.1+1.4i 2.7 6.17e-16 --------- ------------ ---------------- ----------------- pass + s 300 50 30 384 3.1+1.4i 2.7 6.17e-16 --------- ------------ ---------------- ----------------- pass + s 300 50 40 384 3.1+1.4i 2.7 6.17e-16 --------- ------------ ---------------- ----------------- pass + s 300 50 50 384 3.1+1.4i 2.7 6.17e-16 --------- ------------ ---------------- ----------------- pass All tests passed. diff --git a/test/ref/404.txt b/test/ref/404.txt index ca4c380..c227610 100644 --- a/test/ref/404.txt +++ b/test/ref/404.txt @@ -1,17 +1,17 @@ TestSweeper version NA, id NA input: ./tester --type s --dim '100:300:100*50:200:50*10' sort4 - SLATE SLATE LAPACK Reference LAPACK -type nb m n k alpha beta error time (ms) gflop/s time (ms) reference gflop/s status - s 32 100 50 10 3.14+1.41i 2.72 6.1728e-16 ----------- ----------- ---------------- ----------------- pass - s 32 100 100 10 3.14+1.41i 2.72 1.2346e-15 ----------- ----------- ---------------- ----------------- pass - s 32 100 150 10 3.14+1.41i 2.72 1.8518e-15 ----------- ----------- ---------------- ----------------- pass - s 32 100 200 10 3.14+1.41i 2.72 2.4691e-15 ----------- ----------- ---------------- ----------------- pass - s 32 200 50 10 3.14+1.41i 2.72 6.1728e-16 ----------- ----------- ---------------- ----------------- pass - s 32 200 100 10 3.14+1.41i 2.72 1.2346e-15 ----------- ----------- ---------------- ----------------- pass - s 32 200 150 10 3.14+1.41i 2.72 1.8518e-15 ----------- ----------- ---------------- ----------------- pass - s 32 200 200 10 3.14+1.41i 2.72 2.4691e-15 ----------- ----------- ---------------- ----------------- pass - s 32 300 50 10 3.14+1.41i 2.72 6.1728e-16 ----------- ----------- ---------------- ----------------- pass - s 32 300 100 10 3.14+1.41i 2.72 1.2346e-15 ----------- ----------- ---------------- ----------------- pass - s 32 300 150 10 3.14+1.41i 2.72 1.8518e-15 ----------- ----------- ---------------- ----------------- pass - s 32 300 200 10 3.14+1.41i 2.72 2.4691e-15 ----------- ----------- ---------------- ----------------- pass + SLATE LAPACK Reference LAPACK +type m n k nb alpha beta error time (ms) gflop/s time (ms) reference gflop/s status + s 100 50 10 384 3.1+1.4i 2.7 6.17e-16 --------- ------------ ---------------- ----------------- pass + s 100 100 10 384 3.1+1.4i 2.7 1.23e-15 --------- ------------ ---------------- ----------------- pass + s 100 150 10 384 3.1+1.4i 2.7 1.85e-15 --------- ------------ ---------------- ----------------- pass + s 100 200 10 384 3.1+1.4i 2.7 2.47e-15 --------- ------------ ---------------- ----------------- pass + s 200 50 10 384 3.1+1.4i 2.7 6.17e-16 --------- ------------ ---------------- ----------------- pass + s 200 100 10 384 3.1+1.4i 2.7 1.23e-15 --------- ------------ ---------------- ----------------- pass + s 200 150 10 384 3.1+1.4i 2.7 1.85e-15 --------- ------------ ---------------- ----------------- pass + s 200 200 10 384 3.1+1.4i 2.7 2.47e-15 --------- ------------ ---------------- ----------------- pass + s 300 50 10 384 3.1+1.4i 2.7 6.17e-16 --------- ------------ ---------------- ----------------- pass + s 300 100 10 384 3.1+1.4i 2.7 1.23e-15 --------- ------------ ---------------- ----------------- pass + s 300 150 10 384 3.1+1.4i 2.7 1.85e-15 --------- ------------ ---------------- ----------------- pass + s 300 200 10 384 3.1+1.4i 2.7 2.47e-15 --------- ------------ ---------------- ----------------- pass All tests passed. diff --git a/test/ref/500.txt b/test/ref/500.txt index dfce315..96c8e81 100644 --- a/test/ref/500.txt +++ b/test/ref/500.txt @@ -1,10 +1,10 @@ TestSweeper version NA, id NA input: ./tester --check y sort5 - SLATE SLATE LAPACK Reference LAPACK -type nb m n k alpha beta error time (ms) gflop/s time (ms) reference gflop/s status - d 32 100 100 100 3.14+1.41i 2.72 1.2346e-15 ----------- ----------- ---------------- ----------------- pass - d 32 200 200 200 3.14+1.41i 2.72 2.4691e-15 ----------- ----------- ---------------- ----------------- pass - d 32 300 300 300 3.14+1.41i 2.72 3.7037e-15 ----------- ----------- ---------------- ----------------- pass - d 32 400 400 400 3.14+1.41i 2.72 4.9382e-15 ----------- ----------- ---------------- ----------------- pass - d 32 500 500 500 3.14+1.41i 2.72 6.1728e-15 ----------- ----------- ---------------- ----------------- pass + SLATE LAPACK Reference LAPACK +type m n k nb alpha beta error time (ms) gflop/s time (ms) reference gflop/s status + d 100 100 100 384 3.1+1.4i 2.7 1.23e-15 --------- ------------ ---------------- ----------------- pass + d 200 200 200 384 3.1+1.4i 2.7 2.47e-15 --------- ------------ ---------------- ----------------- pass + d 300 300 300 384 3.1+1.4i 2.7 3.70e-15 --------- ------------ ---------------- ----------------- pass + d 400 400 400 384 3.1+1.4i 2.7 4.94e-15 --------- ------------ ---------------- ----------------- pass + d 500 500 500 384 3.1+1.4i 2.7 6.17e-15 --------- ------------ ---------------- ----------------- pass All tests passed. diff --git a/test/ref/501.txt b/test/ref/501.txt index ce067da..6bb6260 100644 --- a/test/ref/501.txt +++ b/test/ref/501.txt @@ -1,10 +1,10 @@ TestSweeper version NA, id NA input: ./tester --check n sort5 - SLATE SLATE LAPACK Reference LAPACK -type nb m n k alpha beta error time (ms) gflop/s time (ms) reference gflop/s status - d 32 100 100 100 3.14+1.41i 2.72 NA ----------- ----------- ---------------- ----------------- no check - d 32 200 200 200 3.14+1.41i 2.72 NA ----------- ----------- ---------------- ----------------- no check - d 32 300 300 300 3.14+1.41i 2.72 NA ----------- ----------- ---------------- ----------------- no check - d 32 400 400 400 3.14+1.41i 2.72 NA ----------- ----------- ---------------- ----------------- no check - d 32 500 500 500 3.14+1.41i 2.72 NA ----------- ----------- ---------------- ----------------- no check + SLATE LAPACK Reference LAPACK +type m n k nb alpha beta error time (ms) gflop/s time (ms) reference gflop/s status + d 100 100 100 384 3.1+1.4i 2.7 NA --------- ------------ ---------------- ----------------- no check + d 200 200 200 384 3.1+1.4i 2.7 NA --------- ------------ ---------------- ----------------- no check + d 300 300 300 384 3.1+1.4i 2.7 NA --------- ------------ ---------------- ----------------- no check + d 400 400 400 384 3.1+1.4i 2.7 NA --------- ------------ ---------------- ----------------- no check + d 500 500 500 384 3.1+1.4i 2.7 NA --------- ------------ ---------------- ----------------- no check All tests passed. diff --git a/test/ref/502.txt b/test/ref/502.txt index 31e0169..d623d8a 100644 --- a/test/ref/502.txt +++ b/test/ref/502.txt @@ -1,10 +1,10 @@ TestSweeper version NA, id NA input: ./tester --ref y sort5 - SLATE SLATE LAPACK Reference LAPACK -type nb m n k alpha beta error time (ms) gflop/s time (ms) reference gflop/s status - d 32 100 100 100 3.14+1.41i 2.72 1.2346e-15 ----------- ----------- ---------------- ----------------- pass - d 32 200 200 200 3.14+1.41i 2.72 2.4691e-15 ----------- ----------- ---------------- ----------------- pass - d 32 300 300 300 3.14+1.41i 2.72 3.7037e-15 ----------- ----------- ---------------- ----------------- pass - d 32 400 400 400 3.14+1.41i 2.72 4.9382e-15 ----------- ----------- ---------------- ----------------- pass - d 32 500 500 500 3.14+1.41i 2.72 6.1728e-15 ----------- ----------- ---------------- ----------------- pass + SLATE LAPACK Reference LAPACK +type m n k nb alpha beta error time (ms) gflop/s time (ms) reference gflop/s status + d 100 100 100 384 3.1+1.4i 2.7 1.23e-15 --------- ------------ ---------------- ----------------- pass + d 200 200 200 384 3.1+1.4i 2.7 2.47e-15 --------- ------------ ---------------- ----------------- pass + d 300 300 300 384 3.1+1.4i 2.7 3.70e-15 --------- ------------ ---------------- ----------------- pass + d 400 400 400 384 3.1+1.4i 2.7 4.94e-15 --------- ------------ ---------------- ----------------- pass + d 500 500 500 384 3.1+1.4i 2.7 6.17e-15 --------- ------------ ---------------- ----------------- pass All tests passed. diff --git a/test/ref/503.txt b/test/ref/503.txt index 331d3ae..c408bf1 100644 --- a/test/ref/503.txt +++ b/test/ref/503.txt @@ -1,10 +1,10 @@ TestSweeper version NA, id NA input: ./tester --ref n sort5 - SLATE SLATE LAPACK Reference LAPACK -type nb m n k alpha beta error time (ms) gflop/s time (ms) reference gflop/s status - d 32 100 100 100 3.14+1.41i 2.72 1.2346e-15 ----------- ----------- ---------------- ----------------- pass - d 32 200 200 200 3.14+1.41i 2.72 2.4691e-15 ----------- ----------- ---------------- ----------------- pass - d 32 300 300 300 3.14+1.41i 2.72 3.7037e-15 ----------- ----------- ---------------- ----------------- pass - d 32 400 400 400 3.14+1.41i 2.72 4.9382e-15 ----------- ----------- ---------------- ----------------- pass - d 32 500 500 500 3.14+1.41i 2.72 6.1728e-15 ----------- ----------- ---------------- ----------------- pass + SLATE LAPACK Reference LAPACK +type m n k nb alpha beta error time (ms) gflop/s time (ms) reference gflop/s status + d 100 100 100 384 3.1+1.4i 2.7 1.23e-15 --------- ------------ ---------------- ----------------- pass + d 200 200 200 384 3.1+1.4i 2.7 2.47e-15 --------- ------------ ---------------- ----------------- pass + d 300 300 300 384 3.1+1.4i 2.7 3.70e-15 --------- ------------ ---------------- ----------------- pass + d 400 400 400 384 3.1+1.4i 2.7 4.94e-15 --------- ------------ ---------------- ----------------- pass + d 500 500 500 384 3.1+1.4i 2.7 6.17e-15 --------- ------------ ---------------- ----------------- pass All tests passed. diff --git a/test/ref/600.txt b/test/ref/600.txt index 345d256..6be42ed 100644 --- a/test/ref/600.txt +++ b/test/ref/600.txt @@ -1,20 +1,20 @@ TestSweeper version NA, id NA input: ./tester --alpha '-2,0,2' sort6 - SLATE SLATE LAPACK Reference LAPACK -type nb m n k alpha beta error time (ms) gflop/s time (ms) reference gflop/s status - d 32 100 100 100 -2 2.72 1.2346e-15 ----------- ----------- ---------------- ----------------- pass - d 32 100 100 100 0 2.72 1.2346e-15 ----------- ----------- ---------------- ----------------- pass - d 32 100 100 100 2 2.72 1.2346e-15 ----------- ----------- ---------------- ----------------- pass - d 32 200 200 200 -2 2.72 2.4691e-15 ----------- ----------- ---------------- ----------------- pass - d 32 200 200 200 0 2.72 2.4691e-15 ----------- ----------- ---------------- ----------------- pass - d 32 200 200 200 2 2.72 2.4691e-15 ----------- ----------- ---------------- ----------------- pass - d 32 300 300 300 -2 2.72 3.7037e-15 ----------- ----------- ---------------- ----------------- pass - d 32 300 300 300 0 2.72 3.7037e-15 ----------- ----------- ---------------- ----------------- pass - d 32 300 300 300 2 2.72 3.7037e-15 ----------- ----------- ---------------- ----------------- pass - d 32 400 400 400 -2 2.72 4.9382e-15 ----------- ----------- ---------------- ----------------- pass - d 32 400 400 400 0 2.72 4.9382e-15 ----------- ----------- ---------------- ----------------- pass - d 32 400 400 400 2 2.72 4.9382e-15 ----------- ----------- ---------------- ----------------- pass - d 32 500 500 500 -2 2.72 6.1728e-15 ----------- ----------- ---------------- ----------------- pass - d 32 500 500 500 0 2.72 6.1728e-15 ----------- ----------- ---------------- ----------------- pass - d 32 500 500 500 2 2.72 6.1728e-15 ----------- ----------- ---------------- ----------------- pass + SLATE LAPACK Reference LAPACK +type m n k nb alpha beta error time (ms) gflop/s time (ms) reference gflop/s status + d 100 100 100 384 -2 2.7 1.23e-15 --------- ------------ ---------------- ----------------- pass + d 100 100 100 384 0 2.7 1.23e-15 --------- ------------ ---------------- ----------------- pass + d 100 100 100 384 2 2.7 1.23e-15 --------- ------------ ---------------- ----------------- pass + d 200 200 200 384 -2 2.7 2.47e-15 --------- ------------ ---------------- ----------------- pass + d 200 200 200 384 0 2.7 2.47e-15 --------- ------------ ---------------- ----------------- pass + d 200 200 200 384 2 2.7 2.47e-15 --------- ------------ ---------------- ----------------- pass + d 300 300 300 384 -2 2.7 3.70e-15 --------- ------------ ---------------- ----------------- pass + d 300 300 300 384 0 2.7 3.70e-15 --------- ------------ ---------------- ----------------- pass + d 300 300 300 384 2 2.7 3.70e-15 --------- ------------ ---------------- ----------------- pass + d 400 400 400 384 -2 2.7 4.94e-15 --------- ------------ ---------------- ----------------- pass + d 400 400 400 384 0 2.7 4.94e-15 --------- ------------ ---------------- ----------------- pass + d 400 400 400 384 2 2.7 4.94e-15 --------- ------------ ---------------- ----------------- pass + d 500 500 500 384 -2 2.7 6.17e-15 --------- ------------ ---------------- ----------------- pass + d 500 500 500 384 0 2.7 6.17e-15 --------- ------------ ---------------- ----------------- pass + d 500 500 500 384 2 2.7 6.17e-15 --------- ------------ ---------------- ----------------- pass All tests passed. diff --git a/test/ref/601.txt b/test/ref/601.txt index 3778f4e..b6442ee 100644 --- a/test/ref/601.txt +++ b/test/ref/601.txt @@ -1,20 +1,20 @@ TestSweeper version NA, id NA input: ./tester --alpha '-inf,0,inf' sort6 - SLATE SLATE LAPACK Reference LAPACK -type nb m n k alpha beta error time (ms) gflop/s time (ms) reference gflop/s status - d 32 100 100 100 -inf 2.72 nan ----------- ----------- ---------------- ----------------- FAILED - d 32 100 100 100 0 2.72 1.2346e-15 ----------- ----------- ---------------- ----------------- pass - d 32 100 100 100 inf 2.72 nan ----------- ----------- ---------------- ----------------- FAILED - d 32 200 200 200 -inf 2.72 nan ----------- ----------- ---------------- ----------------- FAILED - d 32 200 200 200 0 2.72 2.4691e-15 ----------- ----------- ---------------- ----------------- pass - d 32 200 200 200 inf 2.72 nan ----------- ----------- ---------------- ----------------- FAILED - d 32 300 300 300 -inf 2.72 nan ----------- ----------- ---------------- ----------------- FAILED - d 32 300 300 300 0 2.72 3.7037e-15 ----------- ----------- ---------------- ----------------- pass - d 32 300 300 300 inf 2.72 nan ----------- ----------- ---------------- ----------------- FAILED - d 32 400 400 400 -inf 2.72 nan ----------- ----------- ---------------- ----------------- FAILED - d 32 400 400 400 0 2.72 4.9382e-15 ----------- ----------- ---------------- ----------------- pass - d 32 400 400 400 inf 2.72 nan ----------- ----------- ---------------- ----------------- FAILED - d 32 500 500 500 -inf 2.72 nan ----------- ----------- ---------------- ----------------- FAILED - d 32 500 500 500 0 2.72 6.1728e-15 ----------- ----------- ---------------- ----------------- pass - d 32 500 500 500 inf 2.72 nan ----------- ----------- ---------------- ----------------- FAILED + SLATE LAPACK Reference LAPACK +type m n k nb alpha beta error time (ms) gflop/s time (ms) reference gflop/s status + d 100 100 100 384 -inf 2.7 nan --------- ------------ ---------------- ----------------- FAILED + d 100 100 100 384 0 2.7 1.23e-15 --------- ------------ ---------------- ----------------- pass + d 100 100 100 384 inf 2.7 nan --------- ------------ ---------------- ----------------- FAILED + d 200 200 200 384 -inf 2.7 nan --------- ------------ ---------------- ----------------- FAILED + d 200 200 200 384 0 2.7 2.47e-15 --------- ------------ ---------------- ----------------- pass + d 200 200 200 384 inf 2.7 nan --------- ------------ ---------------- ----------------- FAILED + d 300 300 300 384 -inf 2.7 nan --------- ------------ ---------------- ----------------- FAILED + d 300 300 300 384 0 2.7 3.70e-15 --------- ------------ ---------------- ----------------- pass + d 300 300 300 384 inf 2.7 nan --------- ------------ ---------------- ----------------- FAILED + d 400 400 400 384 -inf 2.7 nan --------- ------------ ---------------- ----------------- FAILED + d 400 400 400 384 0 2.7 4.94e-15 --------- ------------ ---------------- ----------------- pass + d 400 400 400 384 inf 2.7 nan --------- ------------ ---------------- ----------------- FAILED + d 500 500 500 384 -inf 2.7 nan --------- ------------ ---------------- ----------------- FAILED + d 500 500 500 384 0 2.7 6.17e-15 --------- ------------ ---------------- ----------------- pass + d 500 500 500 384 inf 2.7 nan --------- ------------ ---------------- ----------------- FAILED 10 tests FAILED. diff --git a/test/ref/602.txt b/test/ref/602.txt index 828c5e7..d4b233f 100644 --- a/test/ref/602.txt +++ b/test/ref/602.txt @@ -1,7 +1,7 @@ TestSweeper version NA, id NA input: ./tester --alpha '1.23+2.34i,1.23-2.34i' --dim 100 sort6 - SLATE SLATE LAPACK Reference LAPACK -type nb m n k alpha beta error time (ms) gflop/s time (ms) reference gflop/s status - d 32 100 100 100 1.23+2.34i 2.72 1.2346e-15 ----------- ----------- ---------------- ----------------- pass - d 32 100 100 100 1.23-2.34i 2.72 1.2346e-15 ----------- ----------- ---------------- ----------------- pass + SLATE LAPACK Reference LAPACK +type m n k nb alpha beta error time (ms) gflop/s time (ms) reference gflop/s status + d 100 100 100 384 1.2+2.3i 2.7 1.23e-15 --------- ------------ ---------------- ----------------- pass + d 100 100 100 384 1.2-2.3i 2.7 1.23e-15 --------- ------------ ---------------- ----------------- pass All tests passed. diff --git a/test/ref/603.txt b/test/ref/603.txt index d6690e9..8245fce 100644 --- a/test/ref/603.txt +++ b/test/ref/603.txt @@ -1,14 +1,14 @@ TestSweeper version NA, id NA input: ./tester --beta '1.234:5.678:0.5' --dim 100 sort6 - SLATE SLATE LAPACK Reference LAPACK -type nb m n k alpha beta error time (ms) gflop/s time (ms) reference gflop/s status - d 32 100 100 100 3.14+1.41i 1.23 1.2346e-15 ----------- ----------- ---------------- ----------------- pass - d 32 100 100 100 3.14+1.41i 1.73 1.2346e-15 ----------- ----------- ---------------- ----------------- pass - d 32 100 100 100 3.14+1.41i 2.23 1.2346e-15 ----------- ----------- ---------------- ----------------- pass - d 32 100 100 100 3.14+1.41i 2.73 1.2346e-15 ----------- ----------- ---------------- ----------------- pass - d 32 100 100 100 3.14+1.41i 3.23 1.2346e-15 ----------- ----------- ---------------- ----------------- pass - d 32 100 100 100 3.14+1.41i 3.73 1.2346e-15 ----------- ----------- ---------------- ----------------- pass - d 32 100 100 100 3.14+1.41i 4.23 1.2346e-15 ----------- ----------- ---------------- ----------------- pass - d 32 100 100 100 3.14+1.41i 4.73 1.2346e-15 ----------- ----------- ---------------- ----------------- pass - d 32 100 100 100 3.14+1.41i 5.23 1.2346e-15 ----------- ----------- ---------------- ----------------- pass + SLATE LAPACK Reference LAPACK +type m n k nb alpha beta error time (ms) gflop/s time (ms) reference gflop/s status + d 100 100 100 384 3.1+1.4i 1.2 1.23e-15 --------- ------------ ---------------- ----------------- pass + d 100 100 100 384 3.1+1.4i 1.7 1.23e-15 --------- ------------ ---------------- ----------------- pass + d 100 100 100 384 3.1+1.4i 2.2 1.23e-15 --------- ------------ ---------------- ----------------- pass + d 100 100 100 384 3.1+1.4i 2.7 1.23e-15 --------- ------------ ---------------- ----------------- pass + d 100 100 100 384 3.1+1.4i 3.2 1.23e-15 --------- ------------ ---------------- ----------------- pass + d 100 100 100 384 3.1+1.4i 3.7 1.23e-15 --------- ------------ ---------------- ----------------- pass + d 100 100 100 384 3.1+1.4i 4.2 1.23e-15 --------- ------------ ---------------- ----------------- pass + d 100 100 100 384 3.1+1.4i 4.7 1.23e-15 --------- ------------ ---------------- ----------------- pass + d 100 100 100 384 3.1+1.4i 5.2 1.23e-15 --------- ------------ ---------------- ----------------- pass All tests passed. diff --git a/test/ref/604.txt b/test/ref/604.txt index c41ecab..130afa7 100644 --- a/test/ref/604.txt +++ b/test/ref/604.txt @@ -1,10 +1,10 @@ TestSweeper version NA, id NA input: ./tester --beta '2.5:12.5' --dim 100 sort6 - SLATE SLATE LAPACK Reference LAPACK -type nb m n k alpha beta error time (ms) gflop/s time (ms) reference gflop/s status - d 32 100 100 100 3.14+1.41i 2.50 1.2346e-15 ----------- ----------- ---------------- ----------------- pass - d 32 100 100 100 3.14+1.41i 5.00 1.2346e-15 ----------- ----------- ---------------- ----------------- pass - d 32 100 100 100 3.14+1.41i 7.50 1.2346e-15 ----------- ----------- ---------------- ----------------- pass - d 32 100 100 100 3.14+1.41i 10.00 1.2346e-15 ----------- ----------- ---------------- ----------------- pass - d 32 100 100 100 3.14+1.41i 12.50 1.2346e-15 ----------- ----------- ---------------- ----------------- pass + SLATE LAPACK Reference LAPACK +type m n k nb alpha beta error time (ms) gflop/s time (ms) reference gflop/s status + d 100 100 100 384 3.1+1.4i 2.5 1.23e-15 --------- ------------ ---------------- ----------------- pass + d 100 100 100 384 3.1+1.4i 5.0 1.23e-15 --------- ------------ ---------------- ----------------- pass + d 100 100 100 384 3.1+1.4i 7.5 1.23e-15 --------- ------------ ---------------- ----------------- pass + d 100 100 100 384 3.1+1.4i 10.0 1.23e-15 --------- ------------ ---------------- ----------------- pass + d 100 100 100 384 3.1+1.4i 12.5 1.23e-15 --------- ------------ ---------------- ----------------- pass All tests passed. diff --git a/test/ref/605.txt b/test/ref/605.txt index dfa8bcd..97b8a3e 100644 --- a/test/ref/605.txt +++ b/test/ref/605.txt @@ -8,15 +8,15 @@ Usage: test [-h|--help] Parameters for sort6: --check check the results; default y; valid: [ny] - --ref run reference; sometimes check -> ref; default n; valid: [ny] + --ref run reference; sometimes check implies ref; default n; valid: [ny] --tol tolerance (e.g., error < tol*epsilon to pass); default 50 --repeat times to repeat each test; default 1 --verbose verbose level; default 0 --cache total cache size, in MiB; default 20 Parameters that take comma-separated list of values and may be repeated: - --type One of: s, r32, single, float; d, r64, double; c, c32, complex; z, c64, complex; i, int, integer; default d - --nb block size; default 32 - --dim m x n x k dimensions - --alpha alpha value - --beta beta value; default 2.72 + --type one of: r16, h, or half; r32, s, single, or float; r64, d, or double; c32, c, or complex-float; c64, z, or complex-double; i, int, or integer; default d + --dim m by n by k dimensions + --nb block size; default 384 + --alpha scalar alpha; default 3.1+1.4i + --beta scalar beta; default 2.7 diff --git a/test/ref/606.txt b/test/ref/606.txt index e851628..12f454a 100644 --- a/test/ref/606.txt +++ b/test/ref/606.txt @@ -1,16 +1,16 @@ TestSweeper version NA, id NA input: ./tester --beta '0:12.5:1.25' --dim 100 sort6 - SLATE SLATE LAPACK Reference LAPACK -type nb m n k alpha beta error time (ms) gflop/s time (ms) reference gflop/s status - d 32 100 100 100 3.14+1.41i 0.0 1.2346e-15 ----------- ----------- ---------------- ----------------- pass - d 32 100 100 100 3.14+1.41i 1.25 1.2346e-15 ----------- ----------- ---------------- ----------------- pass - d 32 100 100 100 3.14+1.41i 2.50 1.2346e-15 ----------- ----------- ---------------- ----------------- pass - d 32 100 100 100 3.14+1.41i 3.75 1.2346e-15 ----------- ----------- ---------------- ----------------- pass - d 32 100 100 100 3.14+1.41i 5.00 1.2346e-15 ----------- ----------- ---------------- ----------------- pass - d 32 100 100 100 3.14+1.41i 6.25 1.2346e-15 ----------- ----------- ---------------- ----------------- pass - d 32 100 100 100 3.14+1.41i 7.50 1.2346e-15 ----------- ----------- ---------------- ----------------- pass - d 32 100 100 100 3.14+1.41i 8.75 1.2346e-15 ----------- ----------- ---------------- ----------------- pass - d 32 100 100 100 3.14+1.41i 10.00 1.2346e-15 ----------- ----------- ---------------- ----------------- pass - d 32 100 100 100 3.14+1.41i 11.25 1.2346e-15 ----------- ----------- ---------------- ----------------- pass - d 32 100 100 100 3.14+1.41i 12.50 1.2346e-15 ----------- ----------- ---------------- ----------------- pass + SLATE LAPACK Reference LAPACK +type m n k nb alpha beta error time (ms) gflop/s time (ms) reference gflop/s status + d 100 100 100 384 3.1+1.4i 0. 1.23e-15 --------- ------------ ---------------- ----------------- pass + d 100 100 100 384 3.1+1.4i 1.2 1.23e-15 --------- ------------ ---------------- ----------------- pass + d 100 100 100 384 3.1+1.4i 2.5 1.23e-15 --------- ------------ ---------------- ----------------- pass + d 100 100 100 384 3.1+1.4i 3.8 1.23e-15 --------- ------------ ---------------- ----------------- pass + d 100 100 100 384 3.1+1.4i 5.0 1.23e-15 --------- ------------ ---------------- ----------------- pass + d 100 100 100 384 3.1+1.4i 6.2 1.23e-15 --------- ------------ ---------------- ----------------- pass + d 100 100 100 384 3.1+1.4i 7.5 1.23e-15 --------- ------------ ---------------- ----------------- pass + d 100 100 100 384 3.1+1.4i 8.8 1.23e-15 --------- ------------ ---------------- ----------------- pass + d 100 100 100 384 3.1+1.4i 10.0 1.23e-15 --------- ------------ ---------------- ----------------- pass + d 100 100 100 384 3.1+1.4i 11.2 1.23e-15 --------- ------------ ---------------- ----------------- pass + d 100 100 100 384 3.1+1.4i 12.5 1.23e-15 --------- ------------ ---------------- ----------------- pass All tests passed. diff --git a/test/run_tests.py b/test/run_tests.py index 0a6c5b3..79d62db 100755 --- a/test/run_tests.py +++ b/test/run_tests.py @@ -77,7 +77,8 @@ [ 203, './tester --type s --dim 1234 --dim 100:300:100 sort2' ], # metric and binary prefix - [ 204, './tester --dim 1k:4kx1ki:4ki --dim 1M:4Mx1Mi:4Mi --dim 1G:4Gx1Gi:4Gi --dim 1T:4Tx1Ti:4Ti --dim 1P:4Px1Pi:4Pi --dim 1E:4Ex1Ei:4Ei sort2', 24 ], + [ 204, './tester --dim 1k:4kx1ki:4ki --dim 1M:4Mx1Mi:4Mi --dim 1G:4Gx1Gi:4Gi sort2', 12 ], + # ... ' --dim 1T:4Tx1Ti:4Ti --dim 1P:4Px1Pi:4Pi --dim 1E:4Ex1Ei:4Ei', 24 # exponent [ 205, './tester --dim 1e3:4e3 --dim 1e6:4e6 sort2', 8 ], diff --git a/test/test.cc b/test/test.cc index 1f7ac2f..174d26f 100644 --- a/test/test.cc +++ b/test/test.cc @@ -15,14 +15,29 @@ // ----------------------------------------------------------------------------- using testsweeper::ParamType; using testsweeper::DataType; +using testsweeper::DataType_help; + +#ifdef DEPRECATED using testsweeper::char2datatype; using testsweeper::datatype2char; using testsweeper::str2datatype; using testsweeper::datatype2str; +#endif + using testsweeper::ansi_bold; using testsweeper::ansi_red; using testsweeper::ansi_normal; +const ParamType PT_Value = ParamType::Value; +const ParamType PT_List = ParamType::List; +const ParamType PT_Out = ParamType::Output; + +const double no_data = testsweeper::no_data_flag; +const char* pi_rt2i = "3.141592653589793 + 1.414213562373095i"; +const char* e_rt3i = "2.718281828459045 + 1.732050807568877i"; +const double pi = 3.141592653589793; +const double e = 2.718281828459045; + // ----------------------------------------------------------------------------- // each section must have a corresponding entry in section_names enum Section { @@ -81,58 +96,64 @@ Params::Params(): // w = width // p = precision - // def = default - // ----- test framework parameters - // name, w, type, default, valid, help - check ( "check", 0, ParamType::Value, 'y', "ny", "check the results" ), - ref ( "ref", 0, ParamType::Value, 'n', "ny", "run reference; sometimes check -> ref" ), - - // name, w, p, type, default, min, max, help - tol ( "tol", 0, 0, ParamType::Value, 50, 1, 1000, "tolerance (e.g., error < tol*epsilon to pass)" ), - repeat ( "repeat", 0, ParamType::Value, 1, 1, 1000, "times to repeat each test" ), - verbose ( "verbose", 0, ParamType::Value, 0, 0, 10, "verbose level" ), - cache ( "cache", 0, ParamType::Value, 20, 1, 1024, "total cache size, in MiB" ), - - // ----- routine parameters - // name, w, p, type, default, char2enum, enum2char, enum2str, help + //----- test framework parameters + // name, w, type, default, valid, help + check ( "check", 0, PT_Value, 'y', "ny", "check the results" ), + ref ( "ref", 0, PT_Value, 'n', "ny", "run reference; sometimes check implies ref" ), + + // name, w, p, type, default, min, max, help + tol ( "tol", 0, 0, PT_Value, 50, 1, 1000, "tolerance (e.g., error < tol*epsilon to pass)" ), + repeat ( "repeat", 0, PT_Value, 1, 1, 1000, "times to repeat each test" ), + verbose ( "verbose", 0, PT_Value, 0, 0, 10, "verbose level" ), + cache ( "cache", 0, PT_Value, 20, 1, 1024, "total cache size, in MiB" ), + + //----- routine parameters, enums + #ifdef DEPRECATED + // name, w, type, default; char2enum, enum2char, enum2str, help datatype_old - ( "type-old", 4, ParamType::List, DataType::Double, char2datatype, datatype2char, datatype2str, - "s=single (float), d=double, c=complex, z=complex, i=int" ), - - // name, w, p, type, default, str2enum, enum2str, help - datatype ( "type", 4, ParamType::List, DataType::Double, str2datatype, datatype2str, - "One of: s, r32, single, float; d, r64, double; c, c32, complex; z, c64, complex; i, int, integer" ), - - // name, w, type, default, min, max, help - nb ( "nb", 3, ParamType::List, 32, 0, INT64_MAX, "block size" ), - dim ( "dim", 6, ParamType::List, 0, INT64_MAX, "m x n x k dimensions" ), - grid ( "grid", 6, ParamType::List, "1x1", 0, 1000000, "p x q dimensions"), - - // name, w, p, type, default, min, max, help - alpha ( "alpha", 4, 2, ParamType::List, "3.141592653589793+1.414213562373095i", -inf, inf, "alpha value" ), - beta ( "beta", 4, 2, ParamType::List, 2.718281828459045, -inf, inf, "beta value" ), - - // ----- output parameters + ( "type-old", 4, PT_List, DataType::Double, + char2datatype, datatype2char, datatype2str, DataType_help ), + + // name, w, type, default; str2enum, enum2str, help + datatype_old2 + ( "type-old2", 4, PT_List, DataType::Double, + str2datatype, datatype2str, DataType_help ), + #endif + + // name, w, type, default, help + datatype ( "type", 4, PT_List, DataType::Double, DataType_help ), + + //----- routine parameters, numeric + // name, w, p, type, default, min, max, help + dim ( "dim", 6, PT_List, 0, 1e10, "m by n by k dimensions" ), + nb ( "nb", 4, PT_List, 384, 0, 1e6, "block size" ), + alpha ( "alpha", 3, 1, PT_List, pi_rt2i, -inf, inf, "scalar alpha" ), + beta ( "beta", 3, 1, PT_List, e, -inf, inf, "scalar beta" ), + grid ( "grid", 3, PT_List, "1x1", 0, 1e6, "MPI grid p by q dimensions" ), + + //----- output parameters // min, max are ignored - // name, w, p, type, default, min, max, help - error ( "SLATE\nerror", 11, 4, ParamType::Output, testsweeper::no_data_flag, 0, 0, "numerical error" ), - ortho ( "SLATE\north. error", 11, 4, ParamType::Output, testsweeper::no_data_flag, 0, 0, "orthogonality error" ), - time ( "SLATE\ntime (s)", 11, 4, ParamType::Output, testsweeper::no_data_flag, 0, 0, "time to solution" ), - gflops ( "SLATE\nGflop/s", 11, 4, ParamType::Output, testsweeper::no_data_flag, 0, 0, "Gflop/s rate" ), - - ref_error ( "Ref.\nerror", 11, 4, ParamType::Output, testsweeper::no_data_flag, 0, 0, "reference numerical error" ), - ref_ortho ( "Ref.\north. error", 11, 4, ParamType::Output, testsweeper::no_data_flag, 0, 0, "reference orthogonality error" ), - ref_time ( "Ref.\ntime (s)", 11, 4, ParamType::Output, testsweeper::no_data_flag, 0, 0, "reference time to solution" ), - ref_gflops( "Ref.\nGflop/s", 11, 4, ParamType::Output, testsweeper::no_data_flag, 0, 0, "reference Gflop/s rate" ), + // error: %8.2e allows 9.99e-99 + // time: %9.3f allows 99999.999 s = 2.9 days + // gflops: %12.3f allows 99999999.999 Gflop/s = 100 Pflop/s + // name, w, p, type, default, min, max, help + error ( "error", 8, 2, PT_Out, no_data, 0, 0, "numerical error" ), + ortho ( "orth.", 8, 2, PT_Out, no_data, 0, 0, "orthogonality error" ), + time ( "time (s)", 9, 3, PT_Out, no_data, 0, 0, "time to solution" ), + gflops ( "gflop/s", 12, 3, PT_Out, no_data, 0, 0, "Gflop/s rate" ), + + ref_time ( "ref time (s)", 9, 3, PT_Out, no_data, 0, 0, "reference time to solution" ), + ref_gflops( "ref gflop/s", 12, 3, PT_Out, no_data, 0, 0, "reference Gflop/s rate" ), // default -1 means "no check" - okay ( "status", 6, ParamType::Output, -1, 0, 0, "success indicator" ) + // name, w, type, default, min, max, help + okay ( "status", 6, PT_Out, -1, 0, 0, "success indicator" ), + msg ( "", 1, PT_Out, "", "error message" ) { // mark standard set of output fields as used okay(); error(); time(); - gflops(); // mark framework parameters as used, so they will be accepted on the command line check(); @@ -149,6 +170,13 @@ int main( int argc, char** argv ) { using testsweeper::QuitException; + // These may or may not be used; mark unused to silence warnings. + #define unused( var ) ((void)var) + unused( pi_rt2i ); + unused( e_rt3i ); + unused( pi ); + unused( e ); + // check that all sections have names assert( sizeof(section_names)/sizeof(*section_names) == Section::num_sections ); diff --git a/test/test.hh b/test/test.hh index b45ba3c..001d295 100644 --- a/test/test.hh +++ b/test/test.hh @@ -3,14 +3,13 @@ // This program is free software: you can redistribute it and/or modify it under // the terms of the BSD 3-Clause license. See the accompanying LICENSE file. -#ifndef EXAMPLE_HH -#define EXAMPLE_HH +#ifndef TEST_HH +#define TEST_HH #include "testsweeper.hh" -// ----------------------------------------------------------------------------- -class Params: public testsweeper::ParamsBase -{ +//------------------------------------------------------------------------------ +class Params: public testsweeper::ParamsBase { public: const double inf = std::numeric_limits::infinity(); const double nan = std::numeric_limits::quiet_NaN(); @@ -19,7 +18,7 @@ public: // Field members are explicitly public. // Order here determines output order. - // ----- test framework parameters + //----- test framework parameters testsweeper::ParamChar check; testsweeper::ParamChar ref; testsweeper::ParamDouble tol; @@ -27,39 +26,43 @@ public: testsweeper::ParamInt verbose; testsweeper::ParamInt cache; - // ----- routine parameters + //----- routine parameters, enums + #ifdef DEPRECATED testsweeper::ParamEnum< testsweeper::DataType > datatype_old; + testsweeper::ParamEnum< testsweeper::DataType > datatype_old2; + #endif testsweeper::ParamEnum< testsweeper::DataType > datatype; - testsweeper::ParamInt nb; - testsweeper::ParamInt3 dim; - testsweeper::ParamInt3 grid; + + //----- routine parameters, numeric + testsweeper::ParamInt3 dim; + testsweeper::ParamInt nb; testsweeper::ParamComplex alpha; - testsweeper::ParamDouble beta; + testsweeper::ParamDouble beta; + testsweeper::ParamInt3 grid; - // ----- output parameters + //----- output parameters testsweeper::ParamScientific error; testsweeper::ParamScientific ortho; testsweeper::ParamDouble time; testsweeper::ParamDouble gflops; - testsweeper::ParamScientific ref_error; - testsweeper::ParamScientific ref_ortho; testsweeper::ParamDouble ref_time; testsweeper::ParamDouble ref_gflops; testsweeper::ParamOkay okay; + testsweeper::ParamString msg; }; -// ----------------------------------------------------------------------------- +//------------------------------------------------------------------------------ // Level 1 void test_sort( Params& params, bool run ); -// ----------------------------------------------------------------------------- +//------------------------------------------------------------------------------ // Level 2 void test_bar( Params& params, bool run ); -// ----------------------------------------------------------------------------- +//------------------------------------------------------------------------------ // Level 3 void test_baz( Params& params, bool run ); -#endif // #ifndef EXAMPLE_HH +#endif // #ifndef TEST_HH diff --git a/test/test_sort.cc b/test/test_sort.cc index efe5304..0cd035c 100644 --- a/test/test_sort.cc +++ b/test/test_sort.cc @@ -96,6 +96,7 @@ void test_sort_work( Params ¶ms, bool run ) (void) nb; // Mark as unused. // mark non-standard output values + params.gflops(); params.ref_time(); params.ref_gflops(); @@ -105,8 +106,8 @@ void test_sort_work( Params ¶ms, bool run ) params.ref_time.name( "LAPACK Reference\ntime (ms)" ); params.ref_gflops.name( "LAPACK\nreference gflop/s" ); - assert( params.time.width() == 11 ); // default width - assert( params.gflops.width() == 11 ); // default width + assert( params.time.width() == 9 ); // default width + assert( params.gflops.width() == 12 ); // default width assert( params.ref_time.width() == 16 ); // LAPACK Reference (1st line) assert( params.ref_gflops.width() == 17 ); // reference gflop/s (2nd line)