So I take it that no one else has this issue? Maybe I should compile julia
myself and see if the problem goes away.
On Friday, January 9, 2015 at 2:39:54 PM UTC-7, Peter Brady wrote:
>
> I'm using julia-0.3.3 installed via yum on Fedora 21 (I saw similar
> behavior on Fedora 20 as well) and I'm encountering behavior I can't
> explain. I haven't been able to come up with a simple reproducible case
> because this weirdness with NaN's appears to be non-deterministic and
> restarting my julia kernel fixes the problem more often than not but I'm
> hoping that someone can shed some light on what's going on.
>
> Here's the relevant part of my notebook session (I apologize for the
> strange formatting):
>
>
> anynan{T}(x::Array{T}) = any(isnan, x)
>
> anynan (generic function with 3 methods)
>
>
>
> typeof(rkvar2.w.f1), typeof(rkvar2.sol), typeof(rkvar2.w.rk2)
>
> (Array{Float64,2},Array{Float64,2},Array{Float64,2})
>
>
>
> anynan(rkvar2.w.f1), minimum(rkvar2.w.f1), maximum(rkvar2.w.f1)
>
> (false,-1.1317244376193704e-5,5.1067129405671126e-5)
>
>
>
> anynan(rkvar2.sol), minimum(rkvar2.sol), maximum(rkvar2.sol)
>
> (false,-2.789562122325811e-7,4.2592881099528343e-7)
>
>
>
> rkvar2.w.rk2[:,:] = rkvar2.sol + 0.5t.dt*rkvar.w.f1
>
> 241x241 Array{Float64,2}:
> 3.38286e-48 1.52057e-48 -9.05314e-48 … 1.52057e-48 3.38286e-48
> 1.52057e-48 -8.61345e-48 -3.74648e-47 -8.61345e-48 1.52057e-48
> -9.05314e-48 -3.74648e-47 -9.55565e-47 -3.74648e-47 -9.05314e-48
> -3.83165e-47 -9.43884e-47 -1.73654e-46 -9.43884e-47 -3.83165e-47
> -9.57104e-47 -1.7154e-46 -2.02324e-46 -1.7154e-46 -9.57104e-47
> -1.73204e-46 -2.02326e-46 2.34406e-47 … -2.02326e-46 -1.73204e-46
> -2.05281e-46 7.70356e-48 9.17989e-46 7.70356e-48 -2.05281e-46
> -1.58991e-48 8.52933e-46 3.06846e-45 8.52933e-46 -1.58991e-48
> 8.2321e-46 2.89897e-45 6.82077e-45 2.89897e-45 8.2321e-46
> 2.8249e-45 6.51202e-45 1.10477e-44 6.51202e-45 2.8249e-45
> 6.38329e-45 1.07416e-44 1.06454e-44 … 1.07416e-44 6.38329e-45
> 1.06528e-44 1.10276e-44 -7.09009e-45 1.10276e-44 1.06528e-44
> 1.13985e-44 -4.18965e-45 -6.50745e-44 -4.18965e-45 1.13985e-44
> ⋮ ⋱ ⋮
> 1.06528e-44 1.10276e-44 -7.09009e-45 1.10276e-44 1.06528e-44
> 6.38329e-45 1.07416e-44 1.06454e-44 … 1.07416e-44 6.38329e-45
> 2.8249e-45 6.51202e-45 1.10477e-44 6.51202e-45 2.8249e-45
> 8.2321e-46 2.89897e-45 6.82077e-45 2.89897e-45 8.2321e-46
> -1.58991e-48 8.52933e-46 3.06846e-45 8.52933e-46 -1.58991e-48
> -2.05281e-46 7.70356e-48 9.17989e-46 7.70356e-48 -2.05281e-46
> -1.73204e-46 -2.02326e-46 2.34406e-47 … -2.02326e-46 -1.73204e-46
> -9.57104e-47 -1.7154e-46 -2.02324e-46 -1.7154e-46 -9.57104e-47
> -3.83165e-47 -9.43884e-47 -1.73654e-46 -9.43884e-47 -3.83165e-47
> -9.05314e-48 -3.74648e-47 -9.55565e-47 -3.74648e-47 -9.05314e-48
> 1.52057e-48 -8.61345e-48 -3.74648e-47 -8.61345e-48 1.52057e-48
> 3.38286e-48 1.52057e-48 -9.05314e-48 … 1.52057e-48 3.38286e-48
>
>
>
>
> anynan(rkvar2.w.rk2)
>
> true
>
>
>
> anynan(rkvar2.sol + 0.5t.dt*rkvar.w.f1)
>
> true
>
>
> 0.5t.dt
>
> 0.005000000000000001
>
>
> anynan(rkvar2.sol + rkvar.w.f1)
>
> true
>
>
>
> idx2d(find(isnan(rkvar2.w.rk2)), rkvar2.w.rk2)
>
> ([(122,86),(125,87)],[NaN,NaN])
>
>
>
> i, j = 122, 86
> rkvar2.w.rk2[i,j]
>
> NaN
>
>
> rkvar2.w.rk2[i,j] = rkvar2.sol[i,j] + 0.5t.dt*rkvar2.w.f1[i,j]
>
> 0.0
>
>
>
> for jj=1:size(rkvar2.sol, 2), ii=1:size(rkvar2.sol,1)
> rkvar2.w.rk2[ii,jj] = rkvar2.sol[ii,jj] + 0.5t.dt*rkvar2.w.f1[ii,jj]
> end
> rkvar2.w.rk2[i,j]
>
> 0.0
>
>
> Where are these NaN's coming from? In the actual code that's failing the
> updates are written using @nloops and @nref but I'm still getting NaN's.
> Any ideas on what I can do?
>
> thanks,
> Peter.
>
>