Как лучше всего выбрать гауссиан в Haskell с использованием пакета статистики? - PullRequest
1 голос
/ 22 февраля 2020

Я пытаюсь создать гауссовский дистрибутив в Haskell и отобрать отдельные двойники из этого дистрибутива. Я использую тип NormalDistribution из пакета statistics , и мне кажется, что я создал что-то, что работает через экземпляр этого типа ContGen :

ghci> withSystemRandom (genContVar (normalDistr 0 1) :: (Gen (PrimState IO) -> IO Double))
-0.2029152322129268

Не вдаваясь в подробности, это включает импорт модулей из mw c -random (для withSystemRandom) и примитива (для аннотации типа, которая требуется для это бегать). В прошлом работа с примитивом обычно означала, что я пропустил API более высокого уровня в пакете, который я пытался использовать.

Есть ли способ отбора образцов у гауссианцев через statistics и без необходимости primitive

1 Ответ

1 голос
/ 22 февраля 2020

Вы на самом деле не работаете с примитивом там. Просто, withSystemRandom происходит, когда создается экземпляр генератора с PrimState IO, но это деталь реализации, о которой вам не нужно беспокоиться. Просто напишите GenIO вместо Gen (PrimState IO), тогда вам также не нужно явно зависеть от пакета primitive.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...