случайный: недостаточно состояния (1 байт);игнорируются - PullRequest
2 голосов
/ 28 декабря 2011

Не уверен, что означает вышеуказанная ошибка. Я только что установил ghmm на свой Mac и получаю эту ошибку каждый раз, когда делаю import ghmm. Я не получаю это сообщение при моей установке ghmm на моем компьютере с Linux, кроме того, что все функции работают нормально.

Мне интересно, видел ли кто-нибудь это раньше и могу ли я что-то сделать, чтобы избавиться от этого. Единственное, что я отличал между двумя установками, это то, что файл autogen.sh ссылался на «libtoolize», которого нет на моем Mac, поэтому я заменил его на его замену «glibtoolize», который позволил скомпилировать и установить нормально.

Любые предложения о том, что на самом деле означает эта ошибка (и, надеюсь, как я могу ее решить), были бы великолепны.

(я не смог найти ответ в Google, но эта программа не относится к ghmm)

Ответы [ 3 ]

2 голосов
/ 30 января 2012

eaj верно, что initstate требует более 8 байтов для информации о состоянии. Лучший способ сделать это для ghmm - использовать параметр --enable-gsl или --with-rng = bsd для ./configure. --with-rng = bsd делает тип "ghmm_rng_state_t" 8 байтов вместо 1. См. rng.h в каталоге ghmm.

2 голосов
/ 28 декабря 2011

Я готов исправить это, но, думаю, я бы сказал, что это не имеет никакого отношения к ghmm или вашим инструментам компиляции. Я думаю, что сообщение об ошибке, которое вы видите, исходит от функций случайных чисел BSD, которые использует OSX (они задокументированы здесь ).

Предполагая, что ghmm вызывает предупреждение (а не python), может иметь возможность сконфигурировать процесс сборки для использования старого rand или какого-либо другого PRNG. В качестве альтернативы, возможно, вы сможете найти подходящее место для добавления вызова к initstate() (см. Выше ссылку на документ) для предоставления требуемой информации о состоянии.

Этот бит со страницы руководства, вероятно, указывает на вашу проблему:

Если initstate () вызывается с менее чем 8 байтами информации о состоянии, или если setstate () обнаруживает, что информация о состоянии искажена, сообщения об ошибках выводятся на стандартный вывод ошибок.

0 голосов
/ 28 декабря 2011

Веб-сайт ghmm говорит об «libtoolize»:

Mac OS X: 10.6 поставляется с неработающим libtool, который нарушает установку (а также поставляется с Python 2.5, так что вам нужно обновление для этого).Джеймс Ховард опубликовал решение в списке рассылки: [Ghmm-list] Компиляция в OS X 10.6 http://sourceforge.net/mailarchive/message.php?msg_id=25874107 HTH

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