Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
Разработка программного обеспечения

TODO

Boost , Chapter 1. Boost.Multiprecision , Roadmap

Boost C++ Libraries

...one of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu, C++ Coding Standards

PrevUpHomeNext

Более подробный список того, чтоможет быть сделано, а не то, чтодолжно быть сделано(что может быть гораздо меньшим списком!).

  • Добавить поддержку 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, который будет более явным. Е.<enum classexpression_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).
Pre-Review Comments
  • Сделайте фиксированную точность ортогональной к типу Allocator в cpp_int. Возможное решение - добавьте дополнительный аргумент шаблона MaxBits, который по умолчанию равен 0 (то есть продолжайте работать до тех пор, пока больше не останется места / памяти). Готово.
  • Могут ли поддерживаться типы колец (точные типы с плавающей запятой)? Ответ должен быть да, но кто-то должен написать его (перенесено в список TODO).
  • Должен ли быть выбор режима округления (вероятно, MPFR)? Перенесён в список.
  • Сделайте тип экспоненты для cpp_dec_float параметром шаблона, возможно, включите поддержку экспонентов большого числа. Открытый вопрос - каким должен быть по умолчанию - int32_t или int64_t? (снято 2012/09/06)
  • Документировать требования к размеру фиксированных прецизионных интов (выполнены в 2012/09/15 году).
  • Точность функционирования документа std lib (выполнено 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).

PrevUpHomeNext

Статья TODO раздела Chapter 1. Boost.Multiprecision Roadmap может быть полезна для разработчиков на c++ и boost.




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.



:: Главная :: Roadmap ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-08-30 11:47:00
2025-05-19 19:13:11/0.0073938369750977/0