Доброго времени суток!
Насколько в GMP длинная арифметика длинная? Т.е. насколько большое число, или насколько маленькое(в случае 0.(0)1 ) может быть?
GMP
Модератор: Модераторы разделов
- /dev/random
- Администратор
- Сообщения: 5289
- ОС: Gentoo
Re: GMP
/dev/random писал(а): ↑27.03.2011 00:34
Оно может быть любым, лишь бы оперативки на его хранение хватило.
Т.е. условно говоря бесконечно много? Ну и соотвественно swap то-же заюзается потом?
- /dev/random
- Администратор
- Сообщения: 5289
- ОС: Gentoo
Re: GMP
Да, своп заюзается, но я не думаю, что вам захочется производить вычисления в свопе. Вы и через 100 лет результата не дождётесь.
По поводу бесконечности - это не просто "условно говоря", а очень "условно говоря". К примеру, с 32bit процессором вы больше 4GB памяти на процесс не добьётесь, сколько свопа ни подключайте.
Re: GMP
Вот еще вопрос, как вывести mpf_t? Ну так чтоб все числа после запятой были. Я нашел только как с фиксированной.
P.S. У меня amd64, да и потом если представить КАКОЕ число влезет в 3GiB оперативки....
Вот еще такой гипотетический вопрос. Есть у меня два потока, в каждом из которых я прибавляю к переменной N некоторое значение. Что может произойти если пока в одном потоке прибавляется, начнется прибавляться в другом?
P.S. У меня amd64, да и потом если представить КАКОЕ число влезет в 3GiB оперативки....
Вот еще такой гипотетический вопрос. Есть у меня два потока, в каждом из которых я прибавляю к переменной N некоторое значение. Что может произойти если пока в одном потоке прибавляется, начнется прибавляться в другом?
- /dev/random
- Администратор
- Сообщения: 5289
- ОС: Gentoo
Re: GMP
Так он и считает с фиксированной. Точность может быть любой, но задаётся заранее.
В документации не судьба поискать? 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.
Re: GMP
/dev/random писал(а): ↑27.03.2011 01:58
Так он и считает с фиксированной. Точность может быть любой, но задаётся заранее.
Так, что-то я вас недопонял. Задается заранее для gmp_printf?
В документации не судьба поискать? info gmp, <enter>, /thread, <enter>, несколько раз <}> (повтор поиска), и видим:
Не мне вообще в целом было интересно, а создавать новую тему не хотелось.
- /dev/random
- Администратор
- Сообщения: 5289
- ОС: Gentoo
Re: GMP
Для всего. Вычисления с дробными числами производятся с точностью до определённого знака (двоичного). До какого, задаётся заранее. Выводится в результате число с той же точностью, с какой вычислялось, если не указана другая точность (на этот раз в десятичных знаках). Можно опустить в конце нули, если вы это имели в виду своим вопросом: %.Ff
Re: GMP
Хм... А при использовании mpf_init2, он как разрядность распределяет между экспонентой и мантисой? Можно ли как-нибудь, скажем, выделить под экспоненту там 2 бита, а остальное под мантису?
- Portnov
- Модератор
- Сообщения: 1786
- Статус: Матёрый линуксоид
- ОС: Debian testing/unstable
- Контактная информация:
Re: GMP
i Уведомление от модератора BratSinot
У нас есть правило: одна тема — один вопрос. Про многопоточность создавайте отдельную тему.
Работа: Ubuntu 9.10
Дом: Debian testing/unstable и на всякий случай winxp в virtualbox.
Для разнообразия: моя домашняя страница -http://iportnov.ru
Дом: Debian testing/unstable и на всякий случай winxp в virtualbox.
Для разнообразия: моя домашняя страница -http://iportnov.ru