Julia 朱莉娅身上奇怪的不精确错误

Julia 朱莉娅身上奇怪的不精确错误,julia,Julia,我用git跟踪了两个程序实例,因此我知道它们是同步的。一个实例在机器A中,另一个在机器B中 机器A运行正常,但当我转到机器B时,我得到以下错误: ERROR: InexactError() in setindex! at array.jl:307 in setindex! at array.jl:345 in main at /path/to/main.jl:122 in include at ./boot.jl:246 in include_from_node1 at loading.jl:1

我用git跟踪了两个程序实例,因此我知道它们是同步的。一个实例在机器A中,另一个在机器B中

机器A运行正常,但当我转到机器B时,我得到以下错误:

ERROR: InexactError()
in setindex! at array.jl:307
in setindex! at array.jl:345
in main at /path/to/main.jl:122
in include at ./boot.jl:246
in include_from_node1 at loading.jl:128
in process_options at ./client.jl:285
in _start at ./client.jl:354
in _start_3B_3587 at /home/usr/julia/usr/bin/../lib/julia/sys.so
while loading /path/to/main.jl, in expression starting on line 265
我不明白它为什么会抛出错误。这两台机器都有Julia的最新主版本:

Version 0.4.0-dev+3322 (2015-02-12 13:56 UTC)
Commit 1ec68b3* (0 days old master)
抛出错误的行是

array2 = zeros(Float64,NHn*2000)
for iRealiz in 1:2000
    ...
    ij = (iRealiz-1)*NHn
    egvals_ts, egvecs_ts = eig(timeser)
    array2[ij+1:ij+NHn] = egvals_ts
    ...
end

NHn是矩阵维度。

当您试图将值
x
转换为不能表示
x
值的类型
T
时,会抛出
不精确错误。例如,在julia 0.4上:

julia> convert(Int, 3.0)
3

julia> convert(Int, 3.2)
ERROR: InexactError()
 in convert at int.jl:189

julia> convert(UInt, -2)
ERROR: InexactError()
最后,在可能与您的情况相关的方面:

julia> convert(Float64, 2+0.3im)
ERROR: InexactError()
 in convert at complex.jl:16

我的理论是舍入错误(取决于特定的CPU)导致它在一台机器上返回复数特征值,但在另一台机器上不返回。

完成了,添加了HEAD status。导致问题的代码是什么?比这更有趣,我决定在两台机器上更新julia(git pull&make)。A正在编译。。。B表示(在make clean之后)`$make/bin/sh:line 1:cmake:command not found make[2]:***[libgit2-0.22.0/build/Makefile]Error 127 make[1]:***[julia release]Error 2 make:**[release]Error 2`我们建议使用稳定(当前为0.3)的版本。正如您所注意到的,主(0.4)分支的变化相当快。请在main at/path/to/main中添加导致错误的代码。
。jl:122
您完全正确,我从对角化中得到了复特征值。奇怪的是,我的程序的版本A不报告错误,而版本B报告错误。也许这与所谓的“威尔金森特征值问题”有关。(如果你有原稿,可以自由分享)。