在C ++ GMP中使用ceil

时间:2012-11-27 23:28:39

标签: c++ gmp

 L=ceil((sqrt(v-4*N)-1)/4)-1

其中V和N是mpz_class变量。

由于某种原因,这会抛出一个错误,打开gmpxx.h并且

有问题
inline void __gmp_set_expr(mpz_ptr z, const __gmp_expr<mpz_t, T> &expr)
{
  expr.eval(z);
}

如何正确地完成这项工作?

1 个答案:

答案 0 :(得分:0)

我不熟悉C ++接口,但我认为mpz_class变量的sqrt()将返回mpz_class结果。将ceil()应用于整数是没有意义的。您将需要使用mpf_class从sqrt()获取浮点结果,然后ceil()应该工作(但返回一个mpf_class)。