【发布时间】:2012-11-27 23:28:38
【问题描述】:
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);
}
我该如何正确处理这个 ceil?
【问题讨论】:
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);
}
我该如何正确处理这个 ceil?
【问题讨论】:
我不熟悉 C++ 接口,但我认为 mpz_class 变量的 sqrt() 将返回 mpz_class 结果。将 ceil() 应用于整数是没有意义的。您将需要使用 mpf_class 从 sqrt() 获取浮点结果,然后 ceil() 应该可以工作(但返回一个 mpf_class)。
【讨论】: