LINUX.ORG.RU

Ди или Си: подскажите быструю целочисленную библиотеку неограниченной разрядности.


0

0

Интересуют битовые операции (в т.ч. сдвиги) нелимитированной разрядности. На манер того же Питона :) Надо в Ди, но, вроде, он сишные либы нормально поддерживает.

★★★★★

Стандартная библиотека, входящая во все дистрибутивы -- gmp.

Только операции сдвига там включены в: левый -- "Arithmetic functions", mpz_mul_2exp, а правый сдвиг -- "Division functions", mpz_fdiv_q_2exp или mpz_tdiv_q_2exp (без разницы)

Die-Hard ★★★★★
()
Ответ на: комментарий от Legioner

>а чем std.bitarray не угодил?

Тем, что я Ди не знаю :) Так, зарядка для ума, пробую написать тестовую задачку на языке, которого ещё не знаю. Посмотрю.

KRoN73 ★★★★★
() автор топика
Ответ на: комментарий от Legioner

std.bitarray сдвиги не поддерживает, как и tango.core.BitArray.

Так целочисленную или побитовую? Целочисленных я нашёл 2:

http://www.dsource.org/projects/scrapple/browser/trunk/Bignumber/Bignumber.d - примитивная реализация. Сдвиги есть

http://www.dsource.org/projects/scrapple/browser/trunk/bignum/bignum.d - _очень_ быстрая реализация. Сдвигов нет. Разрядность ограничена.

Присоединяюсь к рекомендующим gmp. Можно либо прогнать header'ы через htod или bcd.gen, либо просто обьявлять используемые функции.

naryl ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.