Dear all,

I am seeing an unexpected behaviour when combining ImmutableArrays and 
struct like types (I forgot what the proper name is). In particular, the 
following code:

using ImmutableArrays

immutable Mytype
    pos::Vector2{Float32}
end

println(Mytype([4.; 5.]))


incorrectly prints "Mytype(Float32[0.0,2.25])" instead of the expected 
"Mytype(Float32[4.0,5.0])". This is on the latest Ubuntu, 
Julia 0.3.0-prerelease+3628 (2014-06-11 15:07 UTC).

Both "Mytype([4f0; 5f0])" and "convert(Vector2{Float32},[4.;5.])" work as 
expected but changing "immutable" to "type" does not change the error.

So is there a bug in ImmutableArrays, in Julia, or am I doing something 
wrong? If I am doing something wrong, I would at least expect a warning - 
this error cost me quite some time to find out.

Maybe I do not understand how ImmutableArrays is supposed to work, since

      typeof(convert(Vector2{Float32},[4.;5.]).e1)

gives Float64, not Float32 as expected. So is ImmutableArrays actually an 
efficient way of storing fixed-size vectors? Or do I have to stick to 
Float64 even if I do not need the accuracy?


Thank you for your help. Yours,


Jan

Reply via email to