diff options
author | Quincey Koziol <koziol@hdfgroup.org> | 2000-09-22 19:28:05 (GMT) |
---|---|---|
committer | Quincey Koziol <koziol@hdfgroup.org> | 2000-09-22 19:28:05 (GMT) |
commit | 7bd50661fe8096cafb488fc19b9f87fffd69a325 (patch) | |
tree | c321c0e1da0cbdd5d2c82306adf81e20b315cd1d /src/H5Sprivate.h | |
parent | 57ed75800a0ff96eeae1d076602b3f89740d7c8c (diff) | |
download | hdf5-7bd50661fe8096cafb488fc19b9f87fffd69a325.zip hdf5-7bd50661fe8096cafb488fc19b9f87fffd69a325.tar.gz hdf5-7bd50661fe8096cafb488fc19b9f87fffd69a325.tar.bz2 |
[svn-r2587] Purpose:
Bug fix (sorta)
Description:
When the stride and block size of a hyperslab selection are equal, the
blocks that are selected are contiguous in the dataset. Prior to my
hyperslab optimizations, this situation used to be detected and somewhat
optimized to improve performance. I've added more code to optimize for
this situation and integrated it with the new hyperslab optimization that
weren't very efficient for that case as they should have been.
Solution:
Detect contiguous hyperslab selections (i.e. block size in a dimension is
the same as the stride in that dimension) and store the optimized,
contiguous version of that hyperslab. We also store the original, un-
optimized version of the hyperslab to give back to the user if they query
the hyperslab selection they just made.
Platforms tested:
FreeBSD 4.1
Diffstat (limited to 'src/H5Sprivate.h')
-rw-r--r-- | src/H5Sprivate.h | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/src/H5Sprivate.h b/src/H5Sprivate.h index 4de6e34..2824af0 100644 --- a/src/H5Sprivate.h +++ b/src/H5Sprivate.h @@ -127,6 +127,13 @@ typedef struct { * for one hyperslab selection. Perhaps this might need to be * expanded into a list of arrays when the H5Sselect_hyperslab's * restriction to H5S_SELECT_SET is removed. */ + H5S_hyper_dim_t *app_diminfo;/* ->[rank] of per-dim selection info */ + /* 'diminfo' points to a [potentially] optimized version of the user's + * hyperslab information. 'app_diminfo' points to the actual parameters + * that the application used for setting the hyperslab selection. These + * are only used for re-gurgitating the original values used to set the + * hyperslab to the application when it queries the hyperslab selection + * information. */ H5S_hyper_list_t *hyper_lst; /* List of selected hyperslabs (order is not important) */ } H5S_hyper_sel_t; |