2011-06-20 4 views
1

C++でベクトルにGMP bignum double値を含めるにはどうすればよいですか?私のコードは百万以上までしか動かない。C++でのビッグベクトルの使用

vector<double> Primes; 

それは何をする必要があります:ここで私は今、自分のコードを持っている何ですか? 私はチェックして、これについて何も見つけることができません。使用は正常ですか?

+0

「ベクトルプライム」を使用できませんか? – muksie

答えて

4

これはGMPの大きなダブルではなく、標準の組み込みのC++ダブルです。

これはどうですか?

std::vector<mpf_class> Primes; 

は、しかし、あなたは(一見)私は疑うベクトルで素数を入れているので、あなたは、整数、浮動小数点数ではないが欲しいです。これは適切です:

std::vector<mpz_class> Primes; 
+0

精度が少なくとも3つの小数点までの値に対して算術演算を実行する必要があります。 – TimeCoder

+0

あなたの値はどれくらい大きく、どのような種類ですか? – orlp

+0

最大1,000,000,000。私はPrimesの値で数値を分割する必要があり、小数点がそれの後ろにあるかどうかを知る必要があります。実際には、振り返ってみると、実際にはintがより適切であるようです。 – TimeCoder

1

文書によるGMP数はベクトルの初期化も

std::vector<mpz_t> primes 

を作る

mpz_t q; 

使用して初期化されている理由を、あなたの素数は、二重の許可されていますか?

+1

倍精度? – Tom