當前位置: 首頁>>代碼示例>>C++>>正文


C++ std::ldexp方法代碼示例

本文整理匯總了C++中std::ldexp方法的典型用法代碼示例。如果您正苦於以下問題:C++ std::ldexp方法的具體用法?C++ std::ldexp怎麽用?C++ std::ldexp使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在std的用法示例。


在下文中一共展示了std::ldexp方法的4個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的C++代碼示例。

示例1: safe_convert_to_float

R safe_convert_to_float(const LargeInteger& i)
{
   using std::ldexp;
   if(!i)
      return R(0);
   if(std::numeric_limits<R>::is_specialized && std::numeric_limits<R>::max_exponent)
   {
      LargeInteger val(i);
      if(val.sign() < 0)
         val = -val;
      unsigned mb = msb(val);
      if(mb >= std::numeric_limits<R>::max_exponent)
      {
         int scale_factor = (int)mb + 1 - std::numeric_limits<R>::max_exponent;
         BOOST_ASSERT(scale_factor >= 1);
         val >>= scale_factor;
         R result = val.template convert_to<R>();
         if(std::numeric_limits<R>::digits == 0 || std::numeric_limits<R>::digits >= std::numeric_limits<R>::max_exponent)
         {
            //
            // Calculate and add on the remainder, only if there are more
            // digits in the mantissa that the size of the exponent, in 
            // other words if we are dropping digits in the conversion
            // otherwise:
            //
            LargeInteger remainder(i);
            remainder &= (LargeInteger(1) << scale_factor) - 1;
            result += ldexp(safe_convert_to_float<R>(remainder), -scale_factor);
         }
         return i.sign() < 0 ? static_cast<R>(-result) : result;
      }
開發者ID:Niko-r,項目名稱:geofeatures,代碼行數:31,代碼來源:generic_interconvert.hpp

示例2: test_spots

void test_spots(T)
{
   using std::ldexp;
   T tolerance = boost::math::tools::epsilon<T>() * 40000;
      BOOST_CHECK_CLOSE(
         ::boost::math::ibeta_derivative(
            static_cast<T>(2),
            static_cast<T>(4),
            ldexp(static_cast<T>(1), -557)),
         static_cast<T>(4.23957586190238472641508753637420672781472122471791800210e-167L), tolerance * 4);
      BOOST_CHECK_CLOSE(
         ::boost::math::ibeta_derivative(
            static_cast<T>(2),
            static_cast<T>(4.5),
            ldexp(static_cast<T>(1), -557)),
         static_cast<T>(5.24647512910420109893867082626308082567071751558842352760e-167L), tolerance * 4);
}
開發者ID:DenisKolodin,項目名稱:math,代碼行數:17,代碼來源:test_ibeta_derivative.hpp

示例3: ldexp

inline
quantity<Unit, Y>
ldexp(const quantity<Unit, Y>& q,const Int& ex)
{
    using std::ldexp;

    typedef quantity<Unit,Y> quantity_type;

    return quantity_type::from_value(ldexp(q.value(), ex));
}
開發者ID:TheForum,項目名稱:Earth-and-Beyond-server,代碼行數:10,代碼來源:cmath_boost_1_35.hpp

示例4: LatitudeResolution

 /**
  * The latitude resolution of a geohash.
  *
  * @param[in] len the length of the geohash.
  * @return the latitude resolution (degrees).
  *
  * Internally, \e len is first put in the range [0, 18].
  **********************************************************************/
 static Math::real LatitudeResolution(int len) {
   using std::ldexp;
   len = (std::max)(0, (std::min)(int(maxlen_), len));
   return ldexp(real(180), -(5 * len / 2));
 }
開發者ID:bakercp,項目名稱:ofxGeographicLib,代碼行數:13,代碼來源:Geohash.hpp


注:本文中的std::ldexp方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。