1 // speed_test_functions.cpp ----------------------------------------------------------// 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 in a separate compilation unit partially to defeat optimizers 11 // and partially to create a worst case scenario. They are in a user namespace for 12 // realism. 13 14 //--------------------------------------------------------------------------------------// 15 16 #ifndef _SCL_SECURE_NO_WARNINGS 17 # define _SCL_SECURE_NO_WARNINGS 18 #endif 19 20 #ifndef _CRT_SECURE_NO_WARNINGS 21 # define _CRT_SECURE_NO_WARNINGS 22 #endif 23 24 #include "speed_test_functions.hpp" 25 26 namespace user 27 { 28 return_x_big_int16(int16_t x,big_int16_t)29 int16_t return_x_big_int16(int16_t x, big_int16_t) BOOST_NOEXCEPT { return x; } return_x_little_int16(int16_t x,little_int16_t)30 int16_t return_x_little_int16(int16_t x, little_int16_t) BOOST_NOEXCEPT { return x; } return_x_value_big_int16(int16_t x,big_int16_t)31 int16_t return_x_value_big_int16(int16_t x, big_int16_t) BOOST_NOEXCEPT 32 { 33 return conditional_reverse<order::native, order::big>(x); 34 } return_x_value_little_int16(int16_t x,little_int16_t)35 int16_t return_x_value_little_int16(int16_t x, little_int16_t) BOOST_NOEXCEPT 36 { 37 return conditional_reverse<order::native, order::little>(x); 38 } return_x_inplace_big_int16(int16_t x,big_int16_t)39 int16_t return_x_inplace_big_int16(int16_t x, big_int16_t) BOOST_NOEXCEPT 40 { 41 conditional_reverse_inplace<order::native, order::big>(x); return x; 42 } return_x_inplace_little_int16(int16_t x,little_int16_t)43 int16_t return_x_inplace_little_int16(int16_t x, little_int16_t) BOOST_NOEXCEPT 44 { 45 conditional_reverse_inplace<order::native, order::little>(x); return x; 46 } return_y_big_int16(int16_t x,big_int16_t y)47 int16_t return_y_big_int16(int16_t x, big_int16_t y) BOOST_NOEXCEPT { return y; } return_y_little_int16(int16_t x,little_int16_t y)48 int16_t return_y_little_int16(int16_t x, little_int16_t y) BOOST_NOEXCEPT { return y; } 49 50 //------------------------------------------------------------------------------------// 51 return_x_big_int32(int32_t x,big_int32_t)52 int32_t return_x_big_int32(int32_t x, big_int32_t) BOOST_NOEXCEPT { return x; } return_x_little_int32(int32_t x,little_int32_t)53 int32_t return_x_little_int32(int32_t x, little_int32_t) BOOST_NOEXCEPT { return x; } return_x_value_big_int32(int32_t x,big_int32_t)54 int32_t return_x_value_big_int32(int32_t x, big_int32_t) BOOST_NOEXCEPT 55 { 56 return conditional_reverse<order::native, order::big>(x); 57 } return_x_value_little_int32(int32_t x,little_int32_t)58 int32_t return_x_value_little_int32(int32_t x, little_int32_t) BOOST_NOEXCEPT 59 { 60 return conditional_reverse<order::native, order::little>(x); 61 } return_x_inplace_big_int32(int32_t x,big_int32_t)62 int32_t return_x_inplace_big_int32(int32_t x, big_int32_t) BOOST_NOEXCEPT 63 { 64 conditional_reverse_inplace<order::native, order::big>(x); return x; 65 } return_x_inplace_little_int32(int32_t x,little_int32_t)66 int32_t return_x_inplace_little_int32(int32_t x, little_int32_t) BOOST_NOEXCEPT 67 { 68 conditional_reverse_inplace<order::native, order::little>(x); return x; 69 } return_y_big_int32(int32_t x,big_int32_t y)70 int32_t return_y_big_int32(int32_t x, big_int32_t y) BOOST_NOEXCEPT { return y; } return_y_little_int32(int32_t x,little_int32_t y)71 int32_t return_y_little_int32(int32_t x, little_int32_t y) BOOST_NOEXCEPT { return y; } 72 73 //------------------------------------------------------------------------------------// 74 return_x_big_int64(int64_t x,big_int64_t)75 int64_t return_x_big_int64(int64_t x, big_int64_t) BOOST_NOEXCEPT { return x; } return_x_little_int64(int64_t x,little_int64_t)76 int64_t return_x_little_int64(int64_t x, little_int64_t) BOOST_NOEXCEPT { return x; } return_x_value_big_int64(int64_t x,big_int64_t)77 int64_t return_x_value_big_int64(int64_t x, big_int64_t) BOOST_NOEXCEPT 78 { 79 return conditional_reverse<order::native, order::big>(x); 80 } return_x_value_little_int64(int64_t x,little_int64_t)81 int64_t return_x_value_little_int64(int64_t x, little_int64_t) BOOST_NOEXCEPT 82 { 83 return conditional_reverse<order::native, order::little>(x); 84 } return_x_inplace_big_int64(int64_t x,big_int64_t)85 int64_t return_x_inplace_big_int64(int64_t x, big_int64_t) BOOST_NOEXCEPT 86 { 87 conditional_reverse_inplace<order::native, order::big>(x); return x; 88 } return_x_inplace_little_int64(int64_t x,little_int64_t)89 int64_t return_x_inplace_little_int64(int64_t x, little_int64_t) BOOST_NOEXCEPT 90 { 91 conditional_reverse_inplace<order::native, order::little>(x); return x; 92 } return_y_big_int64(int64_t x,big_int64_t y)93 int64_t return_y_big_int64(int64_t x, big_int64_t y) BOOST_NOEXCEPT { return y; } return_y_little_int64(int64_t x,little_int64_t y)94 int64_t return_y_little_int64(int64_t x, little_int64_t y) BOOST_NOEXCEPT { return y; } 95 96 } 97