Я пользователь FORTRAN/NAG/SPSS/SAS/Cephes/MathCad/R, и я не вижу, где в Boost.Math находятся такие функции, как dnorm (средний, sd)? Почти все они обеспечены, и многие больше похожи на среднее, искривление, квантиль, дополняют ... но увеличиваются. Математика полностью использует C++, и это выглядит немного по-другому. Но не паникуйте! См. раздел о строительстве и множество примеров. Вкратце, распределение построено с параметрами (такими как местоположение и масштаб) (вещи после | в представлении, как P (X = k | n, p) или ; в общем представлении pdf f (x; & #956; & #963);2.Такие функции, как pdf, cdf, называются именем этого распределения и случайной вариацией, часто называемой x или k. Например,<normalmy_norm(0,1);pdf(my_norm,2.0);>
Я являюсь пользователемновых функций SAS для вычисления вероятностей. Вы найдете интерфейс более фамильярным, но чтобы иметь возможность выбрать дистрибутив (возможно, используя строку) см. раздел «Дополнительные/Будущие Направления» и /boost/libs/math/dot_net_example/boost_math.cpp для примера, который используется для создания утилиты C# (C sharp) (которая также может оказаться полезной): см.Исследователь статистического распределения.
Я склонен читать руководства и предпочитаю учиться на примерах. Не бойтесь — вы не одиноки! Для функций и дистрибутивов доступно множество примеров. Некоторые из них приведены непосредственно из текста. Другие можно найти в \boost_latest_release\libs\math\example. Если вы являетесь пользователем Visual Studio, вы должны иметь возможность создавать проекты из каждого из них, убедившись, что библиотека Boost включена в список каталогов.
Как сделать так, чтобы библиотека Boost была включена в список каталогов? Вы можете добавить путь включения, например, ваше место Boost /boost-latest_release, например<X:/boost_1_45_0/>, если у вас есть отдельный раздел X для выпусков Boost. Можно использовать переменную BOOST_ ROOT устанавливается на ваше место и включает это. Visual Studio до 2010 года предоставляла инструменты, Варианты, VC++ Каталоги для управления каталогами: Visual Studio 2010 вместо этого предоставляет листы свойств для помощи. Вы можете найти удобным создать новый, добавив \boost-latest_release; к существующему включить элементы в $ (IncludePath).
Я программист С. Могу ли я использовать Boost.Math с C? Да, вы можете, включая все специальные функции, и функции TR1, такие как Isnan. Они появляются как функции С, будучи объявленными как «внешние функции С».
Я C# (Основной) Ф#Фортран? Другой CLI? — программист. Могу ли я использовать Boost.Math с C#? Да, вы можете, включая все специальные функции, и функции TR1, такие как isnan. Но выдолжны построить Рост. Математика как динамическая библиотека (.dll) и компиляция с опцией /CLI. Смотрите папку boost/math/dot_net_example, которая содержит пример, который создает простое приложение для статистического распределения с графическим интерфейсом. См.Statistical Distribution Explorer
Для чего эти «политики»? Политика — это мощный (если необходимо сложный) мелкозернистый механизм, позволяющий настраивать поведение Роста. Математическая библиотека в соответствии с вашими потребностями. См.Политика. Но если, очень вероятно, поведение по умолчанию подходит вам, вам не нужно знать больше.
Я являюсь пользователем C и ожидаю тихого возвращения максимального значения переполнения? Вы (и пользователи C++ тоже) можете вернуть все, что хотите, при переполнении - см.overflow_errorиполитики обработки ошибоки несколько примеров.
Документы имеют несколько сотен страниц! может Я читала документы в автономном режиме или на бумаге? Да - вы можете скачать текущий выпуск Boost большей части документации в виде zip pdfs (включая Boost.Math) из Sourceforge, напримерhttps://sourceforge.net/projects/boost/files/boost-docs/1.45.0/boost_pdf_1_45_0.tar.gz/download. А можно распечатать любые нужные вам страницы (или даже распечатать все страницы - но предупреждайте, что их несколько сотен!). Версии html и pdf имеют высокую гиперссылку. Весь рост. С помощью Adobe Reader, Edit, Find... Часто это может быть частичной заменой полного индекса.
Я хочу компактную версию для встроенного приложения. Могу ли я использовать поплавковую точность? Да - выбрав параметр шаблона RealType в качестве поплавка: например, normal_distributionyour_normal (средний, sd); (но двойной все еще может использоваться внутри, поэтому экономия пространства может быть меньше, чем вы надеетесь). Вы также можете изменить политику продвижения, но точность может быть значительно снижена.
Я, кажется, получаю несколько иные результаты по сравнению с другими программами. Почему?Мы надеемся на рост. Математика должна быть более точной: нашим приоритетом является точность (над скоростью). Смотрите раздел о точности. Но для оценок, требующих итераций, существуют параметры, которые могут изменить требуемую точность (см.Политики). Вы можете получить немного больше (или меньше) точности за счет времени выполнения.
Будет ли моя программа работать медленнее по сравнению с другими математическими функциями и статистическими библиотеками?Наверное, думали не всегда, и не слишком много: наш приоритет - точность. Для большинства функций ключом к скорости является наличие последней версии компилятора со всеми включенными оптимизациями. Для оценок, которые требуют итерации, вы можете получить немного больше скорости за счет точности. См. подробные предложения и результаты попроизводительности.
Как управлять бесконечностью и NaNs портативно? См.nonfinite fp_facetsдля Facets for Floating-Point Infinities и NaNs.
Где находятся готовые библиотеки? Хорошие новости - вам, наверное, они не нужны! - только<#include<boost/>математика/распределение_вы_хочет>. Но в маловероятном случае вы увидитестроительство библиотек.
Я не вижу функции или распределения, которые мне нужны. Вы можете попробовать электронное письмо, чтобы спросить авторов, но никаких обещаний!
Мне нужно больше десятичных цифр для значений/вычислений. Вы можете использовать Boost.Math сBoost.Multiprecision: обычноcpp_dec_floatявляется полезным определяемым пользователем типом для обеспечения фиксированного числа десятичных цифр, обычно 50 или 100.
Почему я не могу написать что-то действительно простое, как<cpp_intone(1);cpp_dec_float_50two(2);one*two;>Поскольку<cpp_int>может быть больше<cpp_dec_floatcanhold>, вы должны сделатьявноепреобразование. См.смешанную многоточную арифметикуипреобразование.
Статья Frequently Asked Questions FAQ раздела Math Toolkit 2.5.0 Chapter 1. Overview может быть полезна для разработчиков на c++ и boost.
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.