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.
>
>

Reply via email to