getfield already implements array-like (numbered) access to a types fields

Or you could just put the array in your type
On Tue, Mar 17, 2015 at 12:02 PM Erik Schnetter <[email protected]> wrote:

> This is nice. This (unsafe) method could be used to implement array-like
> access functionality (getindex, setindex!, length, etc.) in a safe manner.
>
> -erik
>
> > On Mar 17, 2015, at 11:25 , René Donner <[email protected]> wrote:
> >
> > I believe this might help: https://groups.google.com/d/ms
> g/julia-users/K1BlJW8k2o0/FRfANpsB_XIJ
> >
> > Am Dienstag, 17. März 2015 16:08:09 UTC+1 schrieb Kristoffer Carlsson:
> > Say I have an immutable with only one type.
> >
> > immutable Strain
> >     exx::Float64
> >     eyy::Float64
> >     ezz::Float64
> >     gyz::Float64
> >     gxz::Float64
> >     gxy::Float64
> > end
> >
> > Is there anyway I can reinterpret this as a Vector{Float64} in a fast
> way without copying data. The memory of the Strain type should be exactly
> like the vector.
> >
> > The reason I want to do this is because I want to i.e. be able to
> multiply a strain and a general matrix but I also want to be able to write
> my own functions for Strain.
> >
> > Naively, I tried this:
> >
> > julia> reinterpret(Vector{Float64}, strain)
> > ERROR: reinterpret: expected bits type as first argument
> >  in reinterpret at base.jl:65
> >
> > I saw this comment in one of the issues here
> https://github.com/JuliaLang/julia/issues/5857:
> >
> > "ImmutableArrays has the advantage that Array(Vector4{Int}, 10) it can
> be reinterpreted as a 4x10 matrix with reinterpret and reshape without
> memory movement (e.g. when calling a c function on the data)."
> >
> >
> > Best regards,
> > Kristoffer Carlsson
>
> --
> Erik Schnetter <[email protected]>
> http://www.perimeterinstitute.ca/personal/eschnetter/
>
> My email is as private as my paper mail. I therefore support encrypting
> and signing email messages. Get my PGP key from https://sks-keyservers.net
> .
>
>

Reply via email to