В C ++ я хочу создать функцию, которая принимает вектор чисел в качестве входных данных и выводит вектор значений CDF. Следующее — моя попытка:
#include <boost/math/distributions/lognormal.hpp>
vector<double> lognormCDF(vector<double>& input, double sigma)
{
vector<double> output(input.size());
boost::math::lognormal lognormDistr(0, sigma);
for (size_t i = 0; i != input.size(); ++i)
{
output[i] = boost::math::cdf(lognormDistr, input[i]);
}
return output;
}
Приведенный выше код работает, но мне нужно, чтобы он был быстрее.
Ниже приведена справочная информация о том, как будет использоваться функция:
Мне просто интересно, есть ли более быстрый способ реализовать вышеизложенное?
Мне также интересно, если я сортирую входной вектор, есть ли более быстрый способ вычислить логнормальный выходной вектор CDF?
Задача ещё не решена.
Других решений пока нет …