1 // speed_test_functions.hpp ----------------------------------------------------------// 2 3 // Copyright Beman Dawes 2013 4 5 // Distributed under the Boost Software License, Version 1.0. 6 // http://www.boost.org/LICENSE_1_0.txt 7 8 //--------------------------------------------------------------------------------------// 9 10 // These functions are separately compiled partially to defeat optimizers and 11 // partially to create a worst case scenario. They are in a user namespace for 12 // a bit of realism. 13 14 //--------------------------------------------------------------------------------------// 15 16 #ifndef BOOST_ENDIAN_SPEED_TEST_FUNCTIONS_HPP 17 #define BOOST_ENDIAN_SPEED_TEST_FUNCTIONS_HPP 18 19 #include <boost/cstdint.hpp> 20 #include <boost/endian/arithmetic.hpp> 21 22 namespace user 23 { 24 using namespace boost; 25 using namespace boost::endian; 26 27 int16_t return_x_big_int16(int16_t x, big_int16_t y) BOOST_NOEXCEPT; 28 int16_t return_x_little_int16(int16_t x, little_int16_t y) BOOST_NOEXCEPT; 29 int16_t return_x_value_big_int16(int16_t x, big_int16_t) BOOST_NOEXCEPT; 30 int16_t return_x_value_little_int16(int16_t x, little_int16_t y) BOOST_NOEXCEPT; 31 int16_t return_x_inplace_big_int16(int16_t x, big_int16_t y) BOOST_NOEXCEPT; 32 int16_t return_x_inplace_little_int16(int16_t x, little_int16_t y) BOOST_NOEXCEPT; 33 int16_t return_y_big_int16(int16_t x, big_int16_t y) BOOST_NOEXCEPT; 34 int16_t return_y_little_int16(int16_t x, little_int16_t y) BOOST_NOEXCEPT; 35 36 int32_t return_x_big_int32(int32_t x, big_int32_t y) BOOST_NOEXCEPT; 37 int32_t return_x_little_int32(int32_t x, little_int32_t y) BOOST_NOEXCEPT; 38 int32_t return_x_value_big_int32(int32_t x, big_int32_t) BOOST_NOEXCEPT; 39 int32_t return_x_value_little_int32(int32_t x, little_int32_t y) BOOST_NOEXCEPT; 40 int32_t return_x_inplace_big_int32(int32_t x, big_int32_t y) BOOST_NOEXCEPT; 41 int32_t return_x_inplace_little_int32(int32_t x, little_int32_t y) BOOST_NOEXCEPT; 42 int32_t return_y_big_int32(int32_t x, big_int32_t y) BOOST_NOEXCEPT; 43 int32_t return_y_little_int32(int32_t x, little_int32_t y) BOOST_NOEXCEPT; 44 45 int64_t return_x_big_int64(int64_t x, big_int64_t y) BOOST_NOEXCEPT; 46 int64_t return_x_little_int64(int64_t x, little_int64_t y) BOOST_NOEXCEPT; 47 int64_t return_x_value_big_int64(int64_t x, big_int64_t) BOOST_NOEXCEPT; 48 int64_t return_x_value_little_int64(int64_t x, little_int64_t y) BOOST_NOEXCEPT; 49 int64_t return_x_inplace_big_int64(int64_t x, big_int64_t y) BOOST_NOEXCEPT; 50 int64_t return_x_inplace_little_int64(int64_t x, little_int64_t y) BOOST_NOEXCEPT; 51 int64_t return_y_big_int64(int64_t x, big_int64_t y) BOOST_NOEXCEPT; 52 int64_t return_y_little_int64(int64_t x, little_int64_t y) BOOST_NOEXCEPT; 53 54 } 55 56 #endif 57