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

Extras/Future Directions

Boost , Math Toolkit 2.5.0 , Chapter 5. Statistical Distributions and Functions

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
Adding Additional Location and Scale Parameters

В некоторых приложениях моделирования требуется распределение с определенным местоположением и масштабом: часто это приравнивается к определенному среднему и стандартному отклонению, хотя для многих распределений связь между этими свойствами и параметрами местоположения и масштаба нетривиальна. См.http://www.itl.nist.gov/div898/handbook/eda/section3/eda364.htmдля получения дополнительной информации.

Очевидный способ справиться с этим - через шаблон адаптера:

template <class Dist>
class scaled_distribution
{
   scaled_distribution(
     const Dist dist,
     typename Dist::value_type location,
     typename Dist::value_type scale = 0);
};

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

An "any_distribution" class

Легко добавить объект распределения, который виртуализирует фактический тип распределения, и поэтому может содержать «любой» объект, который соответствует концептуальным требованиям распределения:

template <class RealType>
class any_distribution
{
public:
   template <class Distribution>
   any_distribution(const Distribution& d);
};
// Get the cdf of the underlying distribution:
template <class RealType>
RealType cdf(const any_distribution<RealType>& d, RealType x);
// etc....

Такой класс облегчит написание нешаблонного кода, который может работать с любым типом распределения.

УтилитаStatistical Distribution Explorerдля Windows является примером использования.

Пока неясно, есть ли убедительный вариант использования. Возможно, тесты на пригодность могут обеспечить такой вариант использования: это требует дополнительного изучения.

Higher Level Hypothesis Tests

Тесты более высокого уровня, примерно соответствующиеТесты гипотез математикиУпаковка может быть добавлена достаточно легко, например:

template <class InputIterator>
typename std::iterator_traits<InputIterator>::value_type
   test_equal_mean(
     InputIterator a,
     InputIterator b,
     typename std::iterator_traits<InputIterator>::value_type expected_mean);

Возвращает вероятность того, что данные в последовательности [a,b] имеют среднееожидаемое_среднее.

Integration With Statistical Accumulators

Аккумуляторный каркас Эрика Ниблера— тоже работает — предоставляет средства для вычисления различных статистических свойств из экспериментальных данных. Существует возможность интегрировать статистические тесты с этой структурой на более позднем этапе:

// Define an accumulator, all required statistics to calculate the test
// are calculated automatically:
accumulator_set<double, features<tag::test_expected_mean> > acc(expected_mean=4);
// Pass our data to the accumulator:
acc = std::for_each(mydata.begin(), mydata.end(), acc);
// Extract the result:
double p = probability(acc);

PrevUpHomeNext

Статья Extras/Future Directions раздела Math Toolkit 2.5.0 Chapter 5. Statistical Distributions and Functions может быть полезна для разработчиков на c++ и boost.




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



:: Главная :: Chapter 5. Statistical Distributions and Functions ::


реклама


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

Время компиляции файла: 2024-08-30 11:47:00
2025-05-20 05:24:52/0.022741079330444/1