2012-11-27 1 views
0
L=ceil((sqrt(v-4*N)-1)/4)-1 

où V et N sont des variables mpz_class.Utilisation de ceil en C++ GMP

Pour une raison quelconque cela jette une erreur qui ouvre gmpxx.h et a un problème avec

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

Comment puis-je faire Ceil correctement?

Répondre

0

Je ne suis pas familier avec l'interface C++, mais je pense que sqrt() d'une variable mpz_class retournera un résultat mpz_class. Il ne sert à rien d'appliquer ceil() à un entier. Vous aurez besoin d'utiliser mpf_class pour obtenir un résultat à virgule flottante de sqrt() et que ceil() devrait fonctionner (mais retourner une classe mpf_class).