You can't hide it.

Your options are copy it to a new packed struct layout - maybe performing
the conversions in chunks of a suitable number.  This would probably be the
fastest and probably pretty friendly on memory &  high performance if you
choose the right constants.  You can use the type conversion routines to go
from the originanl memory layout of the structs to the packed ones, or
simply reduce it yourself - which will of course be higher performance /
lower overhead if you preallocate (rather than append) and avoid all the
complicated conversion code.

Your second option is structure of arrays which decouples where each field
goes, which of course allows you to specify exactly what you want.  You
could then either post-process or preprocess them back in as structures
wherever is most appropriate.

HTH,
-Jason

On Mon, Oct 12, 2015 at 11:55 AM, Jiaxin Han <[email protected]> wrote:

> Hello,
>
> I was expecting that by not inserting a field into memtype, I could avoid
> outputing that field to disk. However, the attached test file shows that
> this is not the case. Even if I do not insert the field, everything is
> written and everything is read back as well.
>
> I guess it has to do with the size of memtype. I tried pack() to reduce
> the size but the data interpretation then went wrong.
>
> Defining a new struct containing only these wanted fields is not optimal,
> since it would require copying the data to the new struct or back, while my
> application involves huge amounts of data. What I try to hide is actually a
> vector field, which I write out separately as an array of variable-length
> arrays. Currently although I have omitted the vector field in memtype, it
> is still written and then read back as well, which corrupts the memory (the
> reading automatically fills the size and memory pointer of the vectors with
> their written values, which are not valid pointers anymore).
>
> So is there a way that I can truly hide a particular field from being
> written as well as from being read back, without having to define a new
> temporary class?
>
> Thank you!
>
> Jiaxin
>
>
> _______________________________________________
> Hdf-forum is for HDF software users discussion.
> [email protected]
> http://lists.hdfgroup.org/mailman/listinfo/hdf-forum_lists.hdfgroup.org
> Twitter: https://twitter.com/hdf5
>
_______________________________________________
Hdf-forum is for HDF software users discussion.
[email protected]
http://lists.hdfgroup.org/mailman/listinfo/hdf-forum_lists.hdfgroup.org
Twitter: https://twitter.com/hdf5

Reply via email to