Более подробный список того, чтоможет быть сделано, а не то, чтодолжно быть сделано(что может быть гораздо меньшим списком!).
Добавить поддержку libdecNumber.
Добавить адаптер back-end для сложных типов чисел.
Добавьте лучшие процедуры умножения (Karatsuba, FFT и т. Д.) в cpp_int_backend.
Добавьте рутины уровня сборки в cpp_int_backend.
Могут ли поддерживаться типы колец (точные типы с плавающей запятой)? Ответ должен быть да, но кто-то должен написать его, трудная часть - это IO и бинарно-десятичная конверсия.
Должен ли быть выбор режима округления (вероятно, MPFR)?
Мы можем повторно использовать временные интервалы в нескольких поддеревьях (временное кэширование).
cpp_dec_float должен округляться до ближайшего.
Комплемент A2 фиксирует точность, которая использует ровно N битов и не более.
Вещи, запрошенные в обзоре:
Производительность mp_number, false>respect to float и mp_number, false>и int должна быть дана, чтобы показать стоимость использования общего интерфейса (в основном это делается, просто нужно обновить документы до последних результатов).
Должны ли мы обеспечить минимальные / максимальные перегрузки для шаблонов выражения? (Не сделано - мы не можем перегрузить функции, объявленные в пространстве имен std :-().
Округление, применяемое при конвертации, должно быть задокументировано (сделано).
Запишите, почему мы не абстрагируем алгоритмы сложения/умножения и т.д. (перенаправлено с «FAQ»)
Документ, почему мы не используем прото (время компиляции).
Мы можем повторно использовать временные интервалы в нескольких поддеревьях (временное кэширование), перенесенных в список TODO.
Подчеркните в документах, что операции ET могут быть переупорядочены (выполнены 2012/10/31).
Документируйте, что происходит с небольшой фиксированной точностью cpp_int (выполнено 2012/10/31).
Использование bool в шаблонных параметрах может быть улучшено за счет использования класса enum, который будет более явным. Е.<enumclassexpression_template{disabled,enabled};enumclasssign{unsigned,signed};>(Частично 2012/09/15, 2012/10/31).
Каждый бэкэнд должен документировать требования, которые он удовлетворяет (в настоящее время не запланировано для включения: это преднамеренная деталь реализации, а «необязательные» требования - это оптимизации, которые не могут быть обнаружены пользователем). Не сделано: это деталь реализации, точный список выполненных требований — это чисто оптимизация, а не то, что пользователь может обнаружить.
Бэкэнд для целочисленных чисел, осознающих переполнение (выполнено 2012/10/31).
IIUC convert_to используется для эмуляции в C++98 компиляторах C++11 явных конверсий. Может ли явный оператор преобразования быть добавлен на компиляторы, поддерживающие его? (Сделано 2012/09/15).
В интерфейсе должны быть различия между неявной и явной конструкцией (Done 2012/09/15).
В учебнике следует добавить больше примеров, касающихся неявных или явных конверсий. (Сделано 2012/09/15).
Документация должна объяснить, как семантика движения помогает в этой области и что нужно сделать бэкэнду, чтобы извлечь выгоду из этой оптимизации. (Сделано 2012/09/15).
Документация должна содержать спецификацию Throws по операциям mp_number и бэкэнд-требованиям. (Сделано 2012/09/15).
В библиотечном интерфейсе должны использоваться только средства (BOOST_NOEXCEPT, ...) (Done 2012/09/15).
К сожалению, общий mp_number front end не может использовать constexpr, так как не все бэкэнды могут обеспечить это.
Буквально: Библиотека не содержит каких-то букв. Я думаю, что класс mp_number должен обеспечить способ создания букв, если бэкэнд способен. (Сделано 2012/09/15).
Параметр ExpresionTemplate может быть по умолчанию отнесен к классу признаков для более разумных по умолчанию (выполнен в 2012/09/20).
В a = exp1 op exp2, где a происходит внутри одного из exp1 или exp2, мы можем оптимизировать и устранить еще один временный (выполнено 2012/09/20).
Сделайте фиксированную точность ортогональной к типу Allocator в cpp_int. Возможное решение - добавьте дополнительный аргумент шаблона MaxBits, который по умолчанию равен 0 (то есть продолжайте работать до тех пор, пока больше не останется места / памяти). Готово.
Могут ли поддерживаться типы колец (точные типы с плавающей запятой)? Ответ должен быть да, но кто-то должен написать его (перенесено в список TODO).
Должен ли быть выбор режима округления (вероятно, MPFR)? Перенесён в список.
Сделайте тип экспоненты для cpp_dec_float параметром шаблона, возможно, включите поддержку экспонентов большого числа. Открытый вопрос - каким должен быть по умолчанию - int32_t или int64_t? (снято 2012/09/06)
Документировать требования к размеру фиксированных прецизионных интов (выполнены в 2012/09/15 году).
Будьте немного яснее в отношении эффектов представления величины знака cpp_int - min == -max и т.д.
Документ cpp_dec_float precision, rounding, and exponent size (done 2012/09/06).
Можем ли мы быть более ясными в документах, что смешанная арифметика не работает (больше не применяется с 2012/09/06)?
Поведение круглых функций документа лучше (они ведут себя как на C++11) (добавлено примечание 2012/09/06).
Ограничения на размер документа cpp_dec_float (выполнено в 2012/09/06 году).
Добавить поддержку для сплавленного мультипликативного сложения (и вычесть). GMP mpz_t может использовать это (выполнено 2012/09/20).
Статья TODO раздела Chapter 1. Boost.Multiprecision Roadmap может быть полезна для разработчиков на c++ и boost.
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.