crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )


  Ответ в не генерирует Бета-распределение, ошибка в variate_generator
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
Теги
Выровнять по центру
Ссылка на тему
Ссылка на сообщение
Скрытый текст
Сокращение
Код с подсветкой
Offtopic
 
Удалить форматирование
Спец. элементы
Шрифт
Размер
 
Цвет шрифта
 
Отменить ввод
Вернуть ввод
Полужирный
Курсив
Подчеркнутый
 
 
Смайлики
Вставить изображение
Вставить адрес электронной почты
Цитата
Код
Раскрывающийся текст
 
Увеличить отступ
По левому краю
По центру
По правому краю
Вставить список
Вставить список

Опции сообщения
 Включить смайлы?
Иконки сообщения
(Опционально)
                                
                                
  [ Без иконки ]
 


Последние 10 сообщений [ в обратном порядке ]
BRE Дата 8.3.2012, 16:09
 
Цитата(Iron Bug @ 8.3.2012, 16:42) *
так что лучше исключить сразу подобную ситуацию, она обычно порождает множество непонятных ошибок компилятора.

Пока компиляторы не будут использовать режим C++11 по умолчанию нужно будет разделять. Я, скорее всего, и потом буду разделять ибо "привычка выработанная годами". :)
pe1e Дата 8.3.2012, 16:08
  спасибо за конструктивную критику относительно моего русского - исправлюсь! :)
а что касается двойных скобочек,то VS2010 абсолютно ровно на это. В итоге пришел к выводу,что Бетта-распределение не генерирует случайных чисел и нашел аппроксимацию через равномерное распределение.

спасибо большое всем кто поучаствовал в этой теме! :)
Iron Bug Дата 8.3.2012, 15:42
 
Цитата(BRE @ 8.3.2012, 16:47) *
новым компиляторам должно быть все равно.

ну, может совсем новым и всё равно. а ещё до недавнего времени было нет. так что лучше исключить сразу подобную ситуацию, она обычно порождает множество непонятных ошибок компилятора.
BRE Дата 8.3.2012, 13:47
 
Цитата(Iron Bug @ 8.3.2012, 14:08) *
скорее всего, тут общесишная опечатка:
в конструкциях типа template1_name<template2_name<> > важно соблюдать пробел между последними закрывающими угловыми скобками "> >" иначе компилятор рассматривает эту конструкцию, как оператор сдвига >>.

Вроде с C++11 эту ситуацию прояснили и разрешили писать слитно (новым компиляторам должно быть все равно).
Iron Bug Дата 8.3.2012, 13:08
  скорее всего, тут общесишная опечатка:
в конструкциях типа template1_name<template2_name<> > важно соблюдать пробел между последними закрывающими угловыми скобками "> >" иначе компилятор рассматривает эту конструкцию, как оператор сдвига >>.
попробуй поставить пробелы в таких конструкциях (beta_distribution<>>) и посмотреть на результат.

P.S. и ещё: процессы стОхАстические, а не стахостические :)
pe1e Дата 7.3.2012, 21:46
  Здравствуйте!

Я занимаюсь научной деятельностью,а конкретно моделированием стахостических процессов и проверкой статистических гипотез. Недавно столкнулся с библиотекой Boost, поэтому еще не совсем понимаю концепцию ее, хотя не скрываю,что не совсем понимаю открытые исходные файлы библиотеки. Проблема заключается в следующем: генератор случайных числе для Бета-распределения выдает ошибку на следующий код

#include<string.h>
#include<stdio.h>
#include<conio.h>
#include<math.h>

#include<stdlib.h>
#include<time.h>
#include<limits.h>
#include<boost/random.hpp>

#include<boost/random/mersenne_twister.hpp>
#include<boost/random/chi_squared_distribution.hpp>
#include<boost/random/fisher_f_distribution.hpp>
#include <boost/math/distributions/normal.hpp>

#include <boost/math/distributions/weibull.hpp>
#include <boost/math/distributions/beta.hpp>
#include <boost/math/policies/policy.hpp>
#include <boost/random/variate_generator.hpp>

#include <boost/random/mersenne_twister.hpp>

#include<ctime>
#include<algorithm>
#include<locale.h>
#include<vector>

using boost::math::beta_distribution;
beta_distribution<> beta_dist(param[0], param[1]);
variate_generator<mt19937&, beta_distribution<>>  beta_sampler(rng, beta_dist);
return beta_sampler();



следующие ошибки:

1> f:\nstu_university_labwork\8 semester\выпускная квалификационная бакалаврская работа\филоненко\criterionofhomogeneity\criterionofhomogeneity\sample.cpp(120): см. ссылку на создание экземпляров класса шаблон при компиляции "boost::random::variate_generator<Engine,Distribution>"
1> with
1> [
1> Engine=boost::random::mt19937 &,
1> Distribution=boost::math::beta_distribution<>
1> ]
1>d:\program files (x86)\microsoft visual studio 10.0\vc\include\boost\random\variate_generator.hpp(59): error C2146: синтаксическая ошибка: отсутствие ";" перед идентификатором "result_type"
1>d:\program files (x86)\microsoft visual studio 10.0\vc\include\boost\random\variate_generator.hpp(59): error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию
1>d:\program files (x86)\microsoft visual studio 10.0\vc\include\boost\random\variate_generator.hpp(59): error C2602: boost::random::variate_generator<Engine,Distribution>::result_type не является членом базового класса "boost::random::variate_generator<Engine,Distribution>"
1> with
1> [
1> Engine=boost::random::mt19937 &,
1> Distribution=boost::math::beta_distribution<>
1> ]
1> d:\program files (x86)\microsoft visual studio 10.0\vc\include\boost\random\variate_generator.hpp(59): см. объявление "boost::random::variate_generator<Engine,Distribution>::result_type"
1> with
1> [
1> Engine=boost::random::mt19937 &,
1> Distribution=boost::math::beta_distribution<>
1> ]
1>d:\program files (x86)\microsoft visual studio 10.0\vc\include\boost\random\variate_generator.hpp(59): error C2868: boost::random::variate_generator<Engine,Distribution>::result_type: недопустимый синтаксис для "using"-объявления; требуется полное имя
1> with
1> [
1> Engine=boost::random::mt19937 &,
1> Distribution=boost::math::beta_distribution<>
1> ]


Помогите пожалуйста. К сожалению,весь код выложить не могу,потому находится в разных файлах (в .h и .cpp файлах,связанных вместе).
Заранее спасибо!
Просмотр темы полностью (откроется в новом окне)
RSS Рейтинг@Mail.ru Текстовая версия Сейчас: 9.7.2025, 9:18