Самый простой способ получить доступ к библиотеке - включить основной заголовок:
#include <boost/numeric/interval.hpp>
Этот заголовок будет включать в себя почти все другие заголовки (кроме тех, которые перечислены в качестве расширений). Возможно, вы не захотите пользоваться всеми функциями библиотеки. Эта страница служит напоминанием о всей структуре библиотеки. - единственный заголовок, расположенный непосредственно под boost/numeric; все остальные заголовки расположены в подкаталоге boost/numeric/interval. И каждый раз эта документация будет ссылаться на interval/something.hpp, это .
Обратите внимание, что все следующие заголовки независимы и могут быть легко предварительно скомпилированы, если это необходимо (для компиляторов, которые поддерживают предварительно скомпилированные заголовки, конечно).
Function definitions
Следующие заголовки содержат определение класса интервал и всех дружественных функций и операторов.
interval/interval.hpp
Этот заголовок содержит определение и объявление класса интервал. Тем не менее, этот класс шаблонен, и параметры шаблона по умолчанию не доступны этим заголовком. В частности, этот заголовок не обеспечивает по умолчанию специализацию интервал класс для типов с плавающей точкой (interval, interval и interval). Таким образом, если вы не используете свои собственные политики, этот заголовок не очень полезен сам по себе.
interval/utility.hpp
В этом заголовке находятся все функции, которые не ожидают от типа базового номера каких-либо арифметических свойств. Он только ожидает, что границы будут упорядочены, но это не должно вас удивлять, поскольку это требование всей библиотеки. В этом заголовке вы найдете определения доступа и связанных с ним функций: lower, upper, checked_lower, checked_upper, median, width, widen. Существуют также набороподобные функции: in, zero_in, empty, subset, proper_subset, overlap, singleton, equal, intersect, hull, bisect. Наконец, определены abs, min и max.
interval/arith.hpp
Вот бинарные операторы +, -, *, / и унарный оператор -.
interval/arith2.hpp
Этот заголовок определяет fmod, square, sqrt, pow и root.
interval/arith3.hpp
Третий арифметический заголовок: он предоставляет функции add, sub, mul и div. Тип их аргументов — тип числа базы.
interval/transc.hpp
Это последний из заголовков с математическими функциями; он предоставляет следующие функции: cos, sin, tan, acos, asin, atan, cosh, sinh, acosh, asinh, atanh, exp и log.
Policies
Следующие заголовки определяют некоторые политики. Они могут понадобиться, если вы используете политики по умолчанию.
interval/rounded_arith.hpp
Этот заголовок определяет три приведенные политики округления арифметических функций: rounded_arith_std, rounded_arith_opp, rounded_arith_exact.
interval/rounded_transc.hpp
Этот заголовок определяет три приведенные политики округления трансцендентных функций: rounded_transc_std, rounded_transc_opp, rounded_transc_exact. Он отделен от rounded_arith.hpp Поскольку трансцендентальная часть политики округления, вероятно, менее полезна, чем арифметическая часть.
interval/hw_rounding.hpp
Вот полная политика округления для основных типов плавающих точек. Политики зависят от процессора; и чтобы позволить коду пользователя быть портативным, они определяют только общее подмножество доступных аппаратных функций, которые являются арифметическими функциями политики округления.
interval/checking.hpp
Этот заголовок содержит предварительно определенные политики проверки: checking_base, checking_no_empty, checking_no_nan, checking_catch_nan, checking_strict.
interval/policies.hpp
Здесь определены помощники для манипулирования политикой. Содержит политики (и это необходимо для использования политик по умолчанию), change_rounding, change_checking, unprotect и т.д.
Comparisons
interval/compare.hpp
Этот заголовок включает в себя все следующие заголовки. Они предоставляют некоторые предопределенные пространства имен для сравнения.
interval/compare/certain.hpp
Вот сравните :определенный .
interval/compare/possible.hpp
И вот его друг сравните::возможно.
interval/compare/explicit.hpp
Явные функции сравнения cerlt, posge и т.д. определены в этом заголовке.
interval/compare/lexicographic.hpp
Этот заголовок содержит сравните::lexicographic.
interval/compare/set.hpp
Этот заголовок содержит compare::set.
Extensions
Следующие заголовки не включены в interval.hpp и обычно предоставляют не всегда желательные возможности.
interval/io.hpp
Здесь определены основные операторы потоков << и >>. Они должны использоваться только в качестве первого подхода, а затем заменяться настроенной версией.
interval/limits.hpp
Специализация std::numeric_limits адаптирована к интервальному типу.
interval/compare/tribool.hpp
Этот заголовок предоставляет пространство имен сравнения сравните::tribool, особенно адаптированное к тристатусному булеву.
interval/ext/integer.hpp
Этот заголовок обеспечивает смешанные операции между интервалами и целыми числами. Это делается путем преобразования целого числа в тип базового числа. Поскольку это сравнение не всегда корректно (для большого int может быть не совсем конвертируемым в float), этот заголовок не включен автоматически, и пользователь должен убедиться, что это поведение совместимо с тем, что он хочет сделать (если это только умножить некоторые интервалы на 2, вероятно, хорошо включить этот заголовок).
interval/ext/x86_fast_rounding_control.hpp
Этот заголовок определяет новую политику округления, позволяющую обойти проблему точности процессоров x86 (и таким образом ускорить вычисления). Тем не менее, это только частичное решение, и его не следует использовать, когда есть возможность перелива или перелива.
Статья Headers Inclusion раздела может быть полезна для разработчиков на c++ и boost.
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.