本文整理汇总了C++中cgal::Gmpfr类的典型用法代码示例。如果您正苦于以下问题:C++ Gmpfr类的具体用法?C++ Gmpfr怎么用?C++ Gmpfr使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了Gmpfr类的14个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: r_rand
decimal r_rand(const decimal& min,const decimal& max)
{
#ifdef USE_CGAL
CGAL::Gmpfr m;
mpfr_urandom(m.fr(),state,MPFR_RNDN);
return r_round_preference((min>max)?decimal(m)*(min-max)+max:decimal(m)*(max-min)+min,true);
#else
return (min>max)?r_rand()*(min-max)+max:r_rand()*(max-min)+min;
#endif
}
示例2: r_pi
decimal r_pi(bool round)
{
#ifdef USE_CGAL
CGAL::Gmpfr m;
mpfr_const_pi(m.fr(),MPFR_RNDN);
return r_round_preference(decimal(m),round);
#else
return r_round_preference(M_PI,round);
#endif
}
示例3: r_floor
decimal r_floor(const decimal& a)
{
#ifdef USE_CGAL
CGAL::Gmpfr m;
CGAL::Gmpfr n=to_gmpfr(a);
mpfr_floor(m.fr(),n.fr());
return decimal(m);
#else
return floor(a);
#endif
}
示例4: r_log10
decimal r_log10(const decimal& a,bool round)
{
#ifdef USE_CGAL
CGAL::Gmpfr m;
CGAL::Gmpfr n=to_gmpfr(a);
mpfr_log10(m.fr(),n.fr(),MPFR_RNDN);
return r_round_preference(decimal(m),round);
#else
return r_round_preference(log10(a),round);
#endif
}
示例5: r_pow
decimal r_pow(const decimal& a,const decimal& e,bool round)
{
#ifdef USE_CGAL
CGAL::Gmpfr m;
CGAL::Gmpfr n=to_gmpfr(a);
CGAL::Gmpfr o=to_gmpfr(e);
mpfr_pow(m.fr(),n.fr(),o.fr(),MPFR_RNDN);
return r_round_preference(decimal(m),round);
#else
return pow(a,e);
#endif
}
示例6: r_mod
decimal r_mod(const decimal& a,const decimal& b)
{
#ifdef USE_CGAL
CGAL::Gmpfr m;
CGAL::Gmpfr n=to_gmpfr(a);
CGAL::Gmpfr o=to_gmpfr(b);
mpfr_fmod(m.fr(),n.fr(),o.fr(),MPFR_RNDN);
return decimal(m);
#else
return fmod(a,b);
#endif
}
示例7: r_atan2
decimal r_atan2(const decimal& a,const decimal& b,bool round)
{
#ifdef USE_CGAL
CGAL::Gmpfr m;
CGAL::Gmpfr n=to_gmpfr(a);
CGAL::Gmpfr o=to_gmpfr(b);
mpfr_atan2(m.fr(),n.fr(),o.fr(),MPFR_RNDN);
return r_round_preference(decimal(m),round);
#else
return r_round_preference(atan2(a,b),round);
#endif
}
示例8: r_round
decimal r_round(const decimal& a,int places)
{
#ifdef USE_CGAL
CGAL::Gmpfr m;
CGAL::Gmpfr n(10.0);
CGAL::Gmpfr o(places);
mpfr_pow(m.fr(),n.fr(),o.fr(),MPFR_RNDN);
decimal f(m);
#else
decimal f=pow(10.0,places);
#endif
return r_round(a*f)/f;
}
示例9: fabs
CGAL::Gmpfr fabs(const CGAL::Gmpfr &x)
{
return x.abs();
}
示例10: sqrt
CGAL::Gmpfr sqrt(const CGAL::Gmpfr &x)
{
return x.sqrt();
}
示例11: result
CGAL::Gmpfr atan2(const CGAL::Gmpfr &y, const CGAL::Gmpfr &x)
{
CGAL::Gmpfr result(0, std::max(gmp_result_precision(y), gmp_result_precision(x)));
mpfr_atan2(result.fr(), y.fr(), x.fr(), gmp_rounding_mode(CGAL::Gmpfr::get_default_rndmode()));
return result;
}
示例12: atan
CGAL::Gmpfr atan(const CGAL::Gmpfr &x)
{
CGAL::Gmpfr result(0, gmp_result_precision(x));
mpfr_atan(result.fr(), x.fr(), gmp_rounding_mode(CGAL::Gmpfr::get_default_rndmode()));
return result;
}
示例13: return
CGAL::Gmpfr::Precision_type gmp_result_precision(const CGAL::Gmpfr &x)
{
return (x.get_precision() > CGAL::Gmpfr::get_default_precision() ?
x.get_precision() :
CGAL::Gmpfr::get_default_precision());
}
示例14: print
void print(const CGAL::Gmpfr &x)
{
mpfr_out_str(stderr, 10, 0, x.fr(), GMP_RNDD);
}