31 #include <boost/utility/value_init.hpp> 32 #include <boost/shared_ptr.hpp> 36 #define AUTO_VAL_INIT(v) boost::value_initialized<decltype(v)>() 47 return (
a/2) + (
b/2) + ((
a - 2*(
a/2)) + (
b - 2*(
b/2)))/2;
50 template<
class type_vec_type>
51 type_vec_type
median(std::vector<type_vec_type> &v)
54 return boost::value_initialized<type_vec_type>();
58 size_t n = (v.size()) / 2;
59 std::sort(v.begin(), v.end());
66 return get_mid<type_vec_type>(v[n-1],v[n]);
83 template<
class t_scope_leave_handler>
96 template<
class t_scope_leave_handler>
Definition: misc_language.h:75
const uint32_t T[512]
Definition: groestl_tables.h:36
call_befor_die(t_scope_leave_handler f)
Definition: misc_language.h:87
auto_scope_leave_caller create_scope_leave_handler(t_scope_leave_handler f)
Definition: misc_language.h:97
Definition: misc_language.h:84
boost::shared_ptr< call_befor_die_base > auto_scope_leave_caller
Definition: misc_language.h:80
bool sleep_no_w(long ms)
Definition: misc_language.cpp:35
Definition: misc_language.h:103
const GenericPointer< typename T::ValueType > T2 T::AllocatorType & a
Definition: pointer.h:1124
type_vec_type median(std::vector< type_vec_type > &v)
Definition: misc_language.h:51
TODO: (mj-xmr) This will be reduced in an another PR.
Definition: byte_slice.h:39
struct_init()
Definition: misc_language.h:105
t_scope_leave_handler m_func
Definition: misc_language.h:86
T get_mid(const T &a, const T &b)
Definition: misc_language.h:43
~call_befor_die()
Definition: misc_language.h:89
cryptonote::block b
Definition: block.cpp:40
virtual ~call_befor_die_base()
Definition: misc_language.h:77