提交 f9604d57 authored 作者: Frederic Bastien's avatar Frederic Bastien

correctly fix the bug discovered by Joseph and added test case.

上级 39500b2b
......@@ -171,18 +171,12 @@ class Scalar(Type):
ret.imag=0;
return ret;
}
complex_type operator =(scalar_type y) {
complex_type ret;
ret.real=y;
ret.imag=0;
return ret;
}
%(upcast)s
};
"""
# todo: use C templating
return template % dict(nbits = 64, half_nbits = 32, upcast="") + template % dict(nbits = 128, half_nbits = 64, upcast="""
complex_type operator =(npy_float64 y) {
complex_type operator =(npy_float32 y) {
complex_type ret;
ret.real=y;
ret.imag=0;
......
......@@ -1920,6 +1920,21 @@ def test_sum_overflow():
f = function([a], sum(a))
assert f([1]*300) == 300
def test_bug_complext_10_august_09():
v0 = dmatrix()
v1 = dscalar()
v2 = dvector()
v3 = dscalar()
v5 = sub(v3,v3)
v6 = basic.convert_to_complex128(v0)
# v7 = basic.convert_to_float64(v6)
inputs = [v0, v1, v2, v3]
outputs = [v5,v6]
function(inputs, outputs, mode=compile.Mode('py', 'fast_compile'))
function(inputs, outputs, mode=compile.debugmode.DebugMode())
if __name__ == '__main__':
if len(sys.argv) >= 2 and sys.argv[1] == 'OPT':
default_mode = compile.Mode(linker = 'c&py',
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论