2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




 
 Есть ли в C++ встроенная арифетика выше long long?
Сообщение27.10.2022, 14:04 
Аватара пользователя
Собственно, сабж. Уточняю, что арифметика целочисленная. Работаю в MS VS 2019. Может есть библиотеки.
Просто написал прогу для рациональных чисел (самопальные), а знаменатели не некотором шаге (даже после сокращения) выходят за рамки int.
Что делает в принципе невозможным дальнейшую арифметику на множестве long long.

 
 
 
 Re: Есть ли в C++ встроенная арифетика выше long long?
Сообщение27.10.2022, 14:29 
BigInteger Class от MS гугли, как подключить?

 
 
 
 Re: Есть ли в C++ встроенная арифетика выше long long?
Сообщение27.10.2022, 14:57 
Аватара пользователя
Встроенной нет. Библиотеки есть. Кроме упомянутого выше изделия от MS есть GNU MP, в которой сразу рациональные числа с произвольно большими числителями и знаменателями поддерживаются. И наверняка еще куча всего, но в GNU MP точно хорошая реализация (хотя и не очень приятный интерфейс местами).

 
 
 
 Re: Есть ли в C++ встроенная арифетика выше long long?
Сообщение27.10.2022, 17:10 
В Boost есть Multiprecision
https://github.com/boostorg/multiprecision?ysclid=l9r4zfvtes76159371

 
 
 
 Re: Есть ли в C++ встроенная арифетика выше long long?
Сообщение27.10.2022, 18:00 
Аватара пользователя
Всем спасибо, буду разбираться.

 
 
 
 Re: Есть ли в C++ встроенная арифетика выше long long?
Сообщение27.10.2022, 20:12 
Аватара пользователя
Не знаю, насколько эта проблема кому-то интересна, но в интернетах наткнулся на самописный С++ класс русскоязычного умельца
https://habr.com/ru/post/172285/
Спасибо неизвестному прогеру.
Мне такого класса вполне. Покрайней мере факториал 100 считает.
93326215443944152681699238856266700490715968264381621468592963895217599993229915608941463976156518286253697920827223758251185210916864000000000000000000000000
А значит и мою проблемку должен проглотить.

 
 
 
 Re: Есть ли в C++ встроенная арифетика выше long long?
Сообщение28.10.2022, 19:05 
В таком случае посмотрите и сюда.
Есть такая группа
https://stdcpp.ru/
Они предлагают внести в стандарт вот это
https://github.com/cerevra/int/tree/master/v3
https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2020/p0539r5.pdf

 
 
 
 Re: Есть ли в C++ встроенная арифетика выше long long?
Сообщение28.10.2022, 22:07 
Аватара пользователя
MGM в сообщении #1567941 писал(а):
Собственно, сабж. Уточняю, что арифметика целочисленная. Работаю в MS VS 2019. Может есть библиотеки.


Встроенной нет. Некоторые компиляторы (читай: GCC) предоставляют встроенную поддержку для __int128 (включая unsigned __int128).

Через Boost.Multiprecision все это делается в две строчки.

 
 
 [ Сообщений: 8 ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group