Какие библиотеки bignum работают с D?

Мне нужна библиотека bignum для представления больших целых чисел. Какие варианты у меня есть с языком программирования D? Существуют ли, например, привязки GMP?

Обновлять:

Я пытаюсь использовать встроенный BigInt, как описано ниже, но, похоже, он недоступен в GDC.

import std.bigint;
import std.stdio;

void main()
{
  BigInt n = "123";
  writefln(n);
}

Когда я пытаюсь скомпилировать этот код с помощью gdc main.d, мне говорят, что он не может найти bigint.d. Реализует ли gdc только часть библиотеки или я делаю что-то не так?


person daenthusiast    schedule 18.09.2011    source источник
comment
Вы уверены, что используете версию gdc для D2?   -  person Trass3r    schedule 18.09.2011
comment
Если вы не компилировали GDC самостоятельно, то, вероятно, вы не используете последнюю версию D.   -  person he_the_great    schedule 19.09.2011
comment
Насколько я понимаю, в GDC есть весь Фобос, но сам я им никогда не пользовался, так что не знаю. Его текущая домашняя страница находится здесь: bitbucket.org/goshawk/gdc/wiki/Home.   -  person Jonathan M Davis    schedule 20.09.2011


Ответы (2)


Если вам нужен большой целочисленный тип, то есть BigInt в стандартной библиотеке. С другой стороны, если вы специально хотите использовать GMP, все, что вам нужно сделать, это иметь extern(C) объявлений для соответствующих типов и функций в GMP, которые вам нужны, и вы можете вызывать их непосредственно из D. Ознакомьтесь с эту страницу для получения более подробной информации о том, как использовать код C в D.

person Jonathan M Davis    schedule 18.09.2011
comment
кстати, привязка MPFR включена в dil: github.com/ azizk/dil/blob/master/src/util/mpfr.d - person Trass3r; 18.09.2011

Пол Андерсон работает над абстракцией BigFloat для стандартной библиотеки.

person Andrei Alexandrescu    schedule 18.09.2011