⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 functor.hpp

📁 Boost provides free peer-reviewed portable C++ source libraries. We emphasize libraries that work
💻 HPP
字号:
//  (C) Copyright John Maddock 2007.//  Use, modification and distribution are subject to the//  Boost Software License, Version 1.0. (See accompanying file//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)#include <boost/math/special_functions/trunc.hpp>#ifndef BOOST_MATH_TEST_FUNCTOR_HPP#define BOOST_MATH_TEST_FUNCTOR_HPPstruct extract_result_type{   extract_result_type(unsigned i) : m_location(i){}   template <class S>   typename S::value_type operator()(const S& row)   {      return row[m_location];   }private:   unsigned m_location;};inline extract_result_type extract_result(unsigned i){   return extract_result_type(i);}template <class F>struct row_binder1{   row_binder1(F _f, unsigned i) : f(_f), m_i(i) {}   template <class S>   typename S::value_type operator()(const S& row)   {      return f(row[m_i]);   }private:   F f;   unsigned m_i;};template<class F>inline row_binder1<F> bind_func(F f, unsigned i){   return row_binder1<F>(f, i);}template <class F>struct row_binder2{   row_binder2(F _f, unsigned i, unsigned j) : f(_f), m_i(i), m_j(j) {}   template <class S>   typename S::value_type operator()(const S& row)   {      return f(row[m_i], row[m_j]);   }private:   F f;   unsigned m_i, m_j;};template<class F>inline row_binder2<F> bind_func(F f, unsigned i, unsigned j){   return row_binder2<F>(f, i, j);}template <class F>struct row_binder3{   row_binder3(F _f, unsigned i, unsigned j, unsigned k) : f(_f), m_i(i), m_j(j), m_k(k) {}   template <class S>   typename S::value_type operator()(const S& row)   {      return f(row[m_i], row[m_j], row[m_k]);   }private:   F f;   unsigned m_i, m_j, m_k;};template<class F>inline row_binder3<F> bind_func(F f, unsigned i, unsigned j, unsigned k){   return row_binder3<F>(f, i, j, k);}template <class F>struct row_binder4{   row_binder4(F _f, unsigned i, unsigned j, unsigned k, unsigned l) : f(_f), m_i(i), m_j(j), m_k(k), m_l(l) {}   template <class S>   typename S::value_type operator()(const S& row)   {      return f(row[m_i], row[m_j], row[m_k], row[m_l]);   }private:   F f;   unsigned m_i, m_j, m_k, m_l;};template<class F>inline row_binder4<F> bind_func(F f, unsigned i, unsigned j, unsigned k, unsigned l){   return row_binder4<F>(f, i, j, k, l);}template <class F>struct row_binder2_i1{   row_binder2_i1(F _f, unsigned i, unsigned j) : f(_f), m_i(i), m_j(j) {}   template <class S>   typename S::value_type operator()(const S& row)   {      return f(boost::math::itrunc(row[m_i]), row[m_j]);   }private:   F f;   unsigned m_i, m_j;};template<class F>inline row_binder2_i1<F> bind_func_int1(F f, unsigned i, unsigned j){   return row_binder2_i1<F>(f, i, j);}template <class F>struct row_binder3_i2{   row_binder3_i2(F _f, unsigned i, unsigned j, unsigned k) : f(_f), m_i(i), m_j(j), m_k(k) {}   template <class S>   typename S::value_type operator()(const S& row)   {      return f(         boost::math::itrunc(row[m_i]),          boost::math::itrunc(row[m_j]),         row[m_k]);   }private:   F f;   unsigned m_i, m_j, m_k;};template<class F>inline row_binder3_i2<F> bind_func_int2(F f, unsigned i, unsigned j, unsigned k){   return row_binder3_i2<F>(f, i, j, k);}template <class F>struct row_binder4_i2{   row_binder4_i2(F _f, unsigned i, unsigned j, unsigned k, unsigned l) : f(_f), m_i(i), m_j(j), m_k(k), m_l(l) {}   template <class S>   typename S::value_type operator()(const S& row)   {      return f(         boost::math::itrunc(row[m_i]),          boost::math::itrunc(row[m_j]),         row[m_k],         row[m_l]);   }private:   F f;   unsigned m_i, m_j, m_k, m_l;};template<class F>inline row_binder4_i2<F> bind_func_int2(F f, unsigned i, unsigned j, unsigned k, unsigned l){   return row_binder4_i2<F>(f, i, j, k, l);}template <class F>struct negate_type{   negate_type(F f) : m_f(f){}   template <class S>   typename S::value_type operator()(const S& row)   {      return -m_f(row);   }private:   F m_f;};template <class F>inline negate_type<F> negate(F f){   return negate_type<F>(f);}#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -