Add 16 and 64 bit varieties

This commit is contained in:
Beman
2013-05-23 10:19:56 -04:00
parent 8f55000f6f
commit 2f85e370b6
3 changed files with 114 additions and 8 deletions

View File

@@ -97,6 +97,34 @@ namespace
t.report(); t.report();
} }
void test_big_int16()
{
cout << " no +\n ";
time<int16_t, big_int16_t>(user::return_x_big_int16);
cout << " + int16_t argument\n ";
time<int16_t, big_int16_t>(user::return_x_plus_y_big_int16);
cout << " + int16_t by value\n ";
time<int16_t, big_int16_t>(user::return_x_plus_y_value_big_int16);
cout << " + int16_t in place\n ";
time<int16_t, big_int16_t>(user::return_x_plus_y_in_place_big_int16);
cout << " + big_int16_t\n ";
time<int16_t, big_int16_t>(user::return_x_plus_z_big_int16);
}
void test_little_int16()
{
cout << " no +\n ";
time<int16_t, little_int16_t>(user::return_x_little_int16);
cout << " + int16_t argument\n ";
time<int16_t, little_int16_t>(user::return_x_plus_y_little_int16);
cout << " + int16_t by value\n ";
time<int16_t, little_int16_t>(user::return_x_plus_y_value_little_int16);
cout << " + int16_t in place\n ";
time<int16_t, little_int16_t>(user::return_x_plus_y_in_place_little_int16);
cout << " + little_int16_t\n ";
time<int16_t, little_int16_t>(user::return_x_plus_z_little_int16);
}
void test_big_int32() void test_big_int32()
{ {
cout << " no +\n "; cout << " no +\n ";
@@ -125,6 +153,34 @@ namespace
time<int32_t, little_int32_t>(user::return_x_plus_z_little_int32); time<int32_t, little_int32_t>(user::return_x_plus_z_little_int32);
} }
void test_big_int64()
{
cout << " no +\n ";
time<int64_t, big_int64_t>(user::return_x_big_int64);
cout << " + int64_t argument\n ";
time<int64_t, big_int64_t>(user::return_x_plus_y_big_int64);
cout << " + int64_t by value\n ";
time<int64_t, big_int64_t>(user::return_x_plus_y_value_big_int64);
cout << " + int64_t in place\n ";
time<int64_t, big_int64_t>(user::return_x_plus_y_in_place_big_int64);
cout << " + big_int64_t\n ";
time<int64_t, big_int64_t>(user::return_x_plus_z_big_int64);
}
void test_little_int64()
{
cout << " no +\n ";
time<int64_t, little_int64_t>(user::return_x_little_int64);
cout << " + int64_t argument\n ";
time<int64_t, little_int64_t>(user::return_x_plus_y_little_int64);
cout << " + int64_t by value\n ";
time<int64_t, little_int64_t>(user::return_x_plus_y_value_little_int64);
cout << " + int64_t in place\n ";
time<int64_t, little_int64_t>(user::return_x_plus_y_in_place_little_int64);
cout << " + little_int64_t\n ";
time<int64_t, little_int64_t>(user::return_x_plus_z_little_int64);
}
} // unnamed namespace } // unnamed namespace
//--------------------------------------------------------------------------------------// //--------------------------------------------------------------------------------------//
@@ -137,6 +193,13 @@ int cpp_main(int argc, char* argv[])
cout << endl << "------------------------------------------------------" << endl; cout << endl << "------------------------------------------------------" << endl;
cout << endl << "big, 16-bit..." << endl;
test_big_int16();
cout << endl << "little, 16-bit..." << endl;
test_little_int16();
cout << endl << "------------------------------------------------------" << endl;
cout << endl << "big, 32-bit..." << endl; cout << endl << "big, 32-bit..." << endl;
test_big_int32(); test_big_int32();
cout << endl << "little, 32-bit..." << endl; cout << endl << "little, 32-bit..." << endl;
@@ -144,6 +207,13 @@ int cpp_main(int argc, char* argv[])
cout << endl << "------------------------------------------------------" << endl; cout << endl << "------------------------------------------------------" << endl;
cout << endl << "big, 64-bit..." << endl;
test_big_int64();
cout << endl << "little, 64-bit..." << endl;
test_little_int64();
cout << endl << "------------------------------------------------------" << endl;
//cout << "float" << endl; //cout << "float" << endl;
//test<float>(1.2345f); //test<float>(1.2345f);

View File

@@ -18,19 +18,37 @@
namespace user namespace user
{ {
int16_t return_x_big_int16(int16_t x, int16_t, big_int16_t) BOOST_NOEXCEPT {return x;}
int16_t return_x_little_int16(int16_t x, int16_t, little_int16_t) BOOST_NOEXCEPT {return x;}
int16_t return_x_plus_y_big_int16(int16_t x, int16_t y, big_int16_t) BOOST_NOEXCEPT {return x+y;}
int16_t return_x_plus_y_little_int16(int16_t x, int16_t y, little_int16_t) BOOST_NOEXCEPT {return x+y;}
int16_t return_x_plus_y_value_big_int16(int16_t x, int16_t y, big_int16_t) BOOST_NOEXCEPT {return x+big_endian_value(y);}
int16_t return_x_plus_y_value_little_int16(int16_t x, int16_t y, little_int16_t) BOOST_NOEXCEPT {return x+little_endian_value(y);}
int16_t return_x_plus_y_in_place_big_int16(int16_t x, int16_t y, big_int16_t) BOOST_NOEXCEPT {big_endian(y);return x+y;}
int16_t return_x_plus_y_in_place_little_int16(int16_t x, int16_t y, little_int16_t) BOOST_NOEXCEPT {little_endian(y);return x+y;}
int16_t return_x_plus_z_big_int16(int16_t x, int16_t, big_int16_t z) BOOST_NOEXCEPT {return x+z;}
int16_t return_x_plus_z_little_int16(int16_t x, int16_t, little_int16_t z) BOOST_NOEXCEPT {return x+z;}
int32_t return_x_big_int32(int32_t x, int32_t, big_int32_t) BOOST_NOEXCEPT {return x;} int32_t return_x_big_int32(int32_t x, int32_t, big_int32_t) BOOST_NOEXCEPT {return x;}
int32_t return_x_little_int32(int32_t x, int32_t, little_int32_t) BOOST_NOEXCEPT {return x;} int32_t return_x_little_int32(int32_t x, int32_t, little_int32_t) BOOST_NOEXCEPT {return x;}
int32_t return_x_plus_y_big_int32(int32_t x, int32_t y, big_int32_t) BOOST_NOEXCEPT {return x+y;} int32_t return_x_plus_y_big_int32(int32_t x, int32_t y, big_int32_t) BOOST_NOEXCEPT {return x+y;}
int32_t return_x_plus_y_little_int32(int32_t x, int32_t y, little_int32_t) BOOST_NOEXCEPT {return x+y;} int32_t return_x_plus_y_little_int32(int32_t x, int32_t y, little_int32_t) BOOST_NOEXCEPT {return x+y;}
int32_t return_x_plus_y_value_big_int32(int32_t x, int32_t y, big_int32_t) BOOST_NOEXCEPT {return x+big_endian_value(y);} int32_t return_x_plus_y_value_big_int32(int32_t x, int32_t y, big_int32_t) BOOST_NOEXCEPT {return x+big_endian_value(y);}
int32_t return_x_plus_y_value_little_int32(int32_t x, int32_t y, little_int32_t) BOOST_NOEXCEPT {return x+little_endian_value(y);} int32_t return_x_plus_y_value_little_int32(int32_t x, int32_t y, little_int32_t) BOOST_NOEXCEPT {return x+little_endian_value(y);}
int32_t return_x_plus_y_in_place_big_int32(int32_t x, int32_t y, big_int32_t) BOOST_NOEXCEPT {big_endian(y);return x+y;} int32_t return_x_plus_y_in_place_big_int32(int32_t x, int32_t y, big_int32_t) BOOST_NOEXCEPT {big_endian(y);return x+y;}
int32_t return_x_plus_y_in_place_little_int32(int32_t x, int32_t y, little_int32_t) BOOST_NOEXCEPT {little_endian(y);return x+y;} int32_t return_x_plus_y_in_place_little_int32(int32_t x, int32_t y, little_int32_t) BOOST_NOEXCEPT {little_endian(y);return x+y;}
int32_t return_x_plus_z_big_int32(int32_t x, int32_t, big_int32_t z) BOOST_NOEXCEPT {return x+z;} int32_t return_x_plus_z_big_int32(int32_t x, int32_t, big_int32_t z) BOOST_NOEXCEPT {return x+z;}
int32_t return_x_plus_z_little_int32(int32_t x, int32_t, little_int32_t z) BOOST_NOEXCEPT {return x+z;} int32_t return_x_plus_z_little_int32(int32_t x, int32_t, little_int32_t z) BOOST_NOEXCEPT {return x+z;}
int64_t return_x_big_int64(int64_t x, int64_t, big_int64_t) BOOST_NOEXCEPT {return x;}
int64_t return_x_little_int64(int64_t x, int64_t, little_int64_t) BOOST_NOEXCEPT {return x;}
int64_t return_x_plus_y_big_int64(int64_t x, int64_t y, big_int64_t) BOOST_NOEXCEPT {return x+y;}
int64_t return_x_plus_y_little_int64(int64_t x, int64_t y, little_int64_t) BOOST_NOEXCEPT {return x+y;}
int64_t return_x_plus_y_value_big_int64(int64_t x, int64_t y, big_int64_t) BOOST_NOEXCEPT {return x+big_endian_value(y);}
int64_t return_x_plus_y_value_little_int64(int64_t x, int64_t y, little_int64_t) BOOST_NOEXCEPT {return x+little_endian_value(y);}
int64_t return_x_plus_y_in_place_big_int64(int64_t x, int64_t y, big_int64_t) BOOST_NOEXCEPT {big_endian(y);return x+y;}
int64_t return_x_plus_y_in_place_little_int64(int64_t x, int64_t y, little_int64_t) BOOST_NOEXCEPT {little_endian(y);return x+y;}
int64_t return_x_plus_z_big_int64(int64_t x, int64_t, big_int64_t z) BOOST_NOEXCEPT {return x+z;}
int64_t return_x_plus_z_little_int64(int64_t x, int64_t, little_int64_t z) BOOST_NOEXCEPT {return x+z;}
} }

View File

@@ -24,21 +24,39 @@ namespace user
using namespace boost; using namespace boost;
using namespace boost::endian; using namespace boost::endian;
int16_t return_x_big_int16(int16_t x, int16_t y, big_int16_t z) BOOST_NOEXCEPT;
int16_t return_x_little_int16(int16_t x, int16_t y, little_int16_t z) BOOST_NOEXCEPT;
int16_t return_x_plus_y_big_int16(int16_t x, int16_t y, big_int16_t z) BOOST_NOEXCEPT;
int16_t return_x_plus_y_little_int16(int16_t x, int16_t y, little_int16_t z) BOOST_NOEXCEPT;
int16_t return_x_plus_y_value_big_int16(int16_t x, int16_t y, big_int16_t) BOOST_NOEXCEPT;
int16_t return_x_plus_y_value_little_int16(int16_t x, int16_t y, little_int16_t z) BOOST_NOEXCEPT;
int16_t return_x_plus_y_in_place_big_int16(int16_t x, int16_t y, big_int16_t z) BOOST_NOEXCEPT;
int16_t return_x_plus_y_in_place_little_int16(int16_t x, int16_t y, little_int16_t z) BOOST_NOEXCEPT;
int16_t return_x_plus_z_big_int16(int16_t x, int16_t y, big_int16_t z) BOOST_NOEXCEPT;
int16_t return_x_plus_z_little_int16(int16_t x, int16_t y, little_int16_t z) BOOST_NOEXCEPT;
int32_t return_x_big_int32(int32_t x, int32_t y, big_int32_t z) BOOST_NOEXCEPT; int32_t return_x_big_int32(int32_t x, int32_t y, big_int32_t z) BOOST_NOEXCEPT;
int32_t return_x_little_int32(int32_t x, int32_t y, little_int32_t z) BOOST_NOEXCEPT; int32_t return_x_little_int32(int32_t x, int32_t y, little_int32_t z) BOOST_NOEXCEPT;
int32_t return_x_plus_y_big_int32(int32_t x, int32_t y, big_int32_t z) BOOST_NOEXCEPT; int32_t return_x_plus_y_big_int32(int32_t x, int32_t y, big_int32_t z) BOOST_NOEXCEPT;
int32_t return_x_plus_y_little_int32(int32_t x, int32_t y, little_int32_t z) BOOST_NOEXCEPT; int32_t return_x_plus_y_little_int32(int32_t x, int32_t y, little_int32_t z) BOOST_NOEXCEPT;
int32_t return_x_plus_y_value_big_int32(int32_t x, int32_t y, big_int32_t) BOOST_NOEXCEPT; int32_t return_x_plus_y_value_big_int32(int32_t x, int32_t y, big_int32_t) BOOST_NOEXCEPT;
int32_t return_x_plus_y_value_little_int32(int32_t x, int32_t y, little_int32_t z) BOOST_NOEXCEPT; int32_t return_x_plus_y_value_little_int32(int32_t x, int32_t y, little_int32_t z) BOOST_NOEXCEPT;
int32_t return_x_plus_y_in_place_big_int32(int32_t x, int32_t y, big_int32_t z) BOOST_NOEXCEPT; int32_t return_x_plus_y_in_place_big_int32(int32_t x, int32_t y, big_int32_t z) BOOST_NOEXCEPT;
int32_t return_x_plus_y_in_place_little_int32(int32_t x, int32_t y, little_int32_t z) BOOST_NOEXCEPT; int32_t return_x_plus_y_in_place_little_int32(int32_t x, int32_t y, little_int32_t z) BOOST_NOEXCEPT;
int32_t return_x_plus_z_big_int32(int32_t x, int32_t y, big_int32_t z) BOOST_NOEXCEPT; int32_t return_x_plus_z_big_int32(int32_t x, int32_t y, big_int32_t z) BOOST_NOEXCEPT;
int32_t return_x_plus_z_little_int32(int32_t x, int32_t y, little_int32_t z) BOOST_NOEXCEPT; int32_t return_x_plus_z_little_int32(int32_t x, int32_t y, little_int32_t z) BOOST_NOEXCEPT;
int64_t return_x_big_int64(int64_t x, int64_t y, big_int64_t z) BOOST_NOEXCEPT;
int64_t return_x_little_int64(int64_t x, int64_t y, little_int64_t z) BOOST_NOEXCEPT;
int64_t return_x_plus_y_big_int64(int64_t x, int64_t y, big_int64_t z) BOOST_NOEXCEPT;
int64_t return_x_plus_y_little_int64(int64_t x, int64_t y, little_int64_t z) BOOST_NOEXCEPT;
int64_t return_x_plus_y_value_big_int64(int64_t x, int64_t y, big_int64_t) BOOST_NOEXCEPT;
int64_t return_x_plus_y_value_little_int64(int64_t x, int64_t y, little_int64_t z) BOOST_NOEXCEPT;
int64_t return_x_plus_y_in_place_big_int64(int64_t x, int64_t y, big_int64_t z) BOOST_NOEXCEPT;
int64_t return_x_plus_y_in_place_little_int64(int64_t x, int64_t y, little_int64_t z) BOOST_NOEXCEPT;
int64_t return_x_plus_z_big_int64(int64_t x, int64_t y, big_int64_t z) BOOST_NOEXCEPT;
int64_t return_x_plus_z_little_int64(int64_t x, int64_t y, little_int64_t z) BOOST_NOEXCEPT;
} }
#endif #endif