GMP

IDE, VCS и прочее

Модератор: Модераторы разделов

Ответить
BratSinot
Сообщения: 812
ОС: Slackware64

GMP

Сообщение BratSinot »

Доброго времени суток!

Насколько в GMP длинная арифметика длинная? Т.е. насколько большое число, или насколько маленькое(в случае 0.(0)1 ) может быть?
Спасибо сказали:
Аватара пользователя
/dev/random
Администратор
Сообщения: 5289
ОС: Gentoo

Re: GMP

Сообщение /dev/random »

BratSinot писал(а):
27.03.2011 00:11
Доброго времени суток!

Насколько в GMP длинная арифметика длинная? Т.е. насколько большое число, или насколько маленькое(в случае 0.(0)1 ) может быть?

Оно может быть любым, лишь бы оперативки на его хранение хватило.
Спасибо сказали:
BratSinot
Сообщения: 812
ОС: Slackware64

Re: GMP

Сообщение BratSinot »

/dev/random писал(а):
27.03.2011 00:34
BratSinot писал(а):
27.03.2011 00:11
Доброго времени суток!

Насколько в GMP длинная арифметика длинная? Т.е. насколько большое число, или насколько маленькое(в случае 0.(0)1 ) может быть?

Оно может быть любым, лишь бы оперативки на его хранение хватило.

Т.е. условно говоря бесконечно много? Ну и соотвественно swap то-же заюзается потом?
Спасибо сказали:
Аватара пользователя
/dev/random
Администратор
Сообщения: 5289
ОС: Gentoo

Re: GMP

Сообщение /dev/random »

BratSinot писал(а):
27.03.2011 00:52
Т.е. условно говоря бесконечно много? Ну и соотвественно swap то-же заюзается потом?

Да, своп заюзается, но я не думаю, что вам захочется производить вычисления в свопе. Вы и через 100 лет результата не дождётесь.
По поводу бесконечности - это не просто "условно говоря", а очень "условно говоря". К примеру, с 32bit процессором вы больше 4GB памяти на процесс не добьётесь, сколько свопа ни подключайте.
Спасибо сказали:
BratSinot
Сообщения: 812
ОС: Slackware64

Re: GMP

Сообщение BratSinot »

Вот еще вопрос, как вывести mpf_t? Ну так чтоб все числа после запятой были. Я нашел только как с фиксированной.
P.S. У меня amd64, да и потом если представить КАКОЕ число влезет в 3GiB оперативки....

Вот еще такой гипотетический вопрос. Есть у меня два потока, в каждом из которых я прибавляю к переменной N некоторое значение. Что может произойти если пока в одном потоке прибавляется, начнется прибавляться в другом?
Спасибо сказали:
Аватара пользователя
/dev/random
Администратор
Сообщения: 5289
ОС: Gentoo

Re: GMP

Сообщение /dev/random »

BratSinot писал(а):
27.03.2011 01:45
Вот еще вопрос, как вывести mpf_t? Ну так чтоб все числа после запятой были. Я нашел только как с фиксированной.

Так он и считает с фиксированной. Точность может быть любой, но задаётся заранее.

BratSinot писал(а):
27.03.2011 01:45
Вот еще такой гипотетический вопрос. Есть у меня два потока, в каждом из которых я прибавляю к переменной N некоторое значение. Что может произойти если пока в одном потоке прибавляется, начнется прибавляться в другом?

В документации не судьба поискать? info gmp, <enter>, /thread, <enter>, несколько раз <}> (повтор поиска), и видим:

Код: Выделить всё

   * It's safe for two threads to read from the same GMP variable
     simultaneously, but it's not safe for one to read while the
     another might be writing, nor for two threads to write
     simultaneously.  It's not safe for two threads to generate a
     random number from the same `gmp_randstate_t' simultaneously,
     since this involves an update of that variable.

Спасибо сказали:
BratSinot
Сообщения: 812
ОС: Slackware64

Re: GMP

Сообщение BratSinot »

/dev/random писал(а):
27.03.2011 01:58
BratSinot писал(а):
27.03.2011 01:45
Вот еще вопрос, как вывести mpf_t? Ну так чтоб все числа после запятой были. Я нашел только как с фиксированной.

Так он и считает с фиксированной. Точность может быть любой, но задаётся заранее.

Так, что-то я вас недопонял. Задается заранее для gmp_printf?

BratSinot писал(а):
27.03.2011 01:45
Вот еще такой гипотетический вопрос. Есть у меня два потока, в каждом из которых я прибавляю к переменной N некоторое значение. Что может произойти если пока в одном потоке прибавляется, начнется прибавляться в другом?

В документации не судьба поискать? info gmp, <enter>, /thread, <enter>, несколько раз <}> (повтор поиска), и видим:

Не мне вообще в целом было интересно, а создавать новую тему не хотелось.
Спасибо сказали:
Аватара пользователя
/dev/random
Администратор
Сообщения: 5289
ОС: Gentoo

Re: GMP

Сообщение /dev/random »

BratSinot писал(а):
27.03.2011 03:03
Так, что-то я вас недопонял. Задается заранее для gmp_printf?

Для всего. Вычисления с дробными числами производятся с точностью до определённого знака (двоичного). До какого, задаётся заранее. Выводится в результате число с той же точностью, с какой вычислялось, если не указана другая точность (на этот раз в десятичных знаках). Можно опустить в конце нули, если вы это имели в виду своим вопросом: %.Ff
Спасибо сказали:
BratSinot
Сообщения: 812
ОС: Slackware64

Re: GMP

Сообщение BratSinot »

Хм... А при использовании mpf_init2, он как разрядность распределяет между экспонентой и мантисой? Можно ли как-нибудь, скажем, выделить под экспоненту там 2 бита, а остальное под мантису?
Спасибо сказали:
Аватара пользователя
Portnov
Модератор
Сообщения: 1786
Статус: Матёрый линуксоид
ОС: Debian testing/unstable
Контактная информация:

Re: GMP

Сообщение Portnov »



iУведомление от модератора
BratSinot
У нас есть правило: одна тема — один вопрос. Про многопоточность создавайте отдельную тему.
Работа: Ubuntu 9.10
Дом: Debian testing/unstable и на всякий случай winxp в virtualbox.
Для разнообразия: моя домашняя страница -http://iportnov.ru
Спасибо сказали:
Ответить