提交 e98220f9 authored 作者: Arnaud Bergeron's avatar Arnaud Bergeron

Make cumul be a double variable for better accumulation precision.

上级 ab40a501
...@@ -55,7 +55,7 @@ class MultinomialFromUniform(Op): ...@@ -55,7 +55,7 @@ class MultinomialFromUniform(Op):
return [T.zeros_like(x) for x in ins] return [T.zeros_like(x) for x in ins]
def c_code_cache_version(self): def c_code_cache_version(self):
return (7,) return (8,)
def c_code(self, node, name, ins, outs, sub): def c_code(self, node, name, ins, outs, sub):
# support old pickled graphs # support old pickled graphs
...@@ -122,7 +122,7 @@ class MultinomialFromUniform(Op): ...@@ -122,7 +122,7 @@ class MultinomialFromUniform(Op):
for (int n = 0; n < nb_multi; ++n) for (int n = 0; n < nb_multi; ++n)
{ {
int waiting = 1; int waiting = 1;
dtype_%(pvals)s cummul = 0.; double cummul = 0.;
const dtype_%(unis)s* unis_n = (dtype_%(unis)s*)PyArray_GETPTR1(%(unis)s, c*nb_multi + n); const dtype_%(unis)s* unis_n = (dtype_%(unis)s*)PyArray_GETPTR1(%(unis)s, c*nb_multi + n);
for (int m = 0; m < nb_outcomes; ++m) for (int m = 0; m < nb_outcomes; ++m)
{ {
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论