2011-06-10 7 views
6

, ben bu yazı geldi: C or C++ BigInt library on Microsoft WindowsRasgele hassasiyet için GMP'ye genel olarak kabul edilen bir alternatif var mı? Bir BigInt kitaplığı bakarak benim arayışında

kabul cevap GMP kütüphanesi bahseder, fakat Yorum yapanlar biri kütüphane çok incelikle hata vermez ve olmayacağını iddia üretim kodu için iyi. Bu kütüphaneyle uzun vadeli bir gelişme yapılmış mı? İyi alternatifler var mı? Şimdiden teşekkürler.

+1

gibi daha epeyce benzer soru vardır: http://stackoverflow.com/questions/3191002/are-there-any-solid- büyük tam sayı uygulamaları-içinde-c/3191064 # 3191064. Buradaki cevaplardan biri, birkaç alternatiften bahseder ... –

cevap

3

GCC gibi büyük bir proje, bunu printf için kullanıyor ve derleme zamanı hesaplamaları (burada yanılıyorsam beni düzelt) için kullandığını düşünüyorum. Düşünürcünün endişe duyduğu bellek dışı hataları sınırlamanın bir yolu olduğunu düşünürdüm, ancak kişisel olarak kullanmadım, o yüzden size orada yardım edemem. Tek söylediğim bunun kanıtlanmış bir kararlı kütüphane olması. Hatta bir C++ arayüz kütüphanesi var.

+0

Bu, kendi başına bir soru olabilir, ancak bu konuyu içeriğe göre koruyacaktır. "Limitleri sınırla" dediğinizde, istisna teli ile kastettiğinizi mi sanıyorsunuz, yoksa kaynak kodu (korkutucu) değiştirmeye kadar gidebilir misiniz? –

+0

Hayır, GMP'nin belleği sınırlamak için işlevleri/tanımları olduğunu düşünürdüm. GMP'nin kaynağını düzenlemek ludacris. Bağlantılı sorudaki yorumcunun kaçırdığı tüm bilgiler için [burada] (http://gmplib.org/manual/Memory-Management.html#Memory-Management) bakın. – rubenvb

+1

AFAIU GCC, sabit katlama için GMP/MPFR/MPC'yi kullanır, böylece sabit hassasiyet modunda çalışır. Rasgele kesinlikte aritmetik (örneğin tam rasyonel aritmetik) yapmak istiyorsanız, olası herhangi bir bellek sorununun kırpılabileceğini tahmin ediyorum. – janneb

4

Tcl diline sahip olan bigint kütüphane için libtommath kullanır ve gerçekten üretim kullanıma uygun gibi görünmektedir. (Bu bir C kütüphanesi, C++, ama kesinlikle uygundur.)

+1

@ Vlad: Hayır. Aslında, C üretim üretimine uygun şekilde _entirely'dir. Bazı platformlarda bağımlılıkları kontrol etmenin daha kolay olması nedeniyle C'nin C++ 'dan daha uygun olduğu kesin olarak kabul edildi, ancak bunun hala doğru olup olmadığını bilmiyorum. (Tcl'nin uygulaması, bazı dağıtım modellerini desteklemenin bir parçası olarak özellikle sıkı sıkıya bağlıdır. Çoğu kod, bu tür kısıtlamaların altında değildir. Ancak ayrıntılara girmem gerekenden çok daha fazla yer alır ve konu dışıdır. bu soru için zaten.) –

İlgili konular