• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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