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

Termination Condition Functors

Boost , Math Toolkit 2.5.0 , Root Finding Without Derivatives

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
template <class T>
struct eps_tolerance
{
   eps_tolerance();
   eps_tolerance(int bits);
   bool operator()(const T& a, const T& b)const;
};

<eps_tolerance>- обычное условие терминации, используемое с этими функциями поиска корней. Его<operator()>возвращает истинность, когда относительное расстояние междуaиbменьше, чем в четыре раза больше эпсилона машины для T, или 21-бит, в зависимости от того, что больше. Другими словами, вы устанавливаетебитына количество битов точности, которые вы хотите в результате. Минимальная толерантностьв четыре раза выше, чем у машинного эпсилона типа Т, необходима для обеспечения того, чтобы мы получили обратно интервал скобки, поскольку он должен быть явно больше, чем один эпсилон в размере. Хотя теоретически можно достичь максимального расстояния в два раза больше машинного эпсилона, на практике это приводит к большому «трэшированию», учитывая, что функция, корень которой находится, может быть точной только до 1 эпсилона в лучшем случае.

struct equal_floor
{
   equal_floor();
   template <class T> bool operator()(const T& a, const T& b)const;
};

Это условие терминации используется, когда вы хотите найти целочисленный результат, который являетсяэтажомистинного корня. Он заканчивается, как только оба конца интервала имеют один и тот жеэтаж.

struct equal_ceil
{
   equal_ceil();
   template <class T> bool operator()(const T& a, const T& b)const;
};

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

struct equal_nearest_integer
{
   equal_nearest_integer();
   template <class T> bool operator()(const T& a, const T& b)const;
};

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


PrevUpHomeNext

Статья Termination Condition Functors раздела Math Toolkit 2.5.0 Root Finding Without Derivatives может быть полезна для разработчиков на c++ и boost.




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



:: Главная :: Root Finding Without Derivatives ::


реклама


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

Время компиляции файла: 2024-08-30 11:47:00
2025-05-19 22:18:41/0.0082809925079346/1